javascript - 交易状态——数据类型——从字符串到数字的转换——使用javascript
问题描述
我知道在技术上
Fabric
存储键值对,其中键是字符串,值是字节数组。
如何Number
仅在事务代码中使用数据类型进行比较?我猜在实践中一切都存储在字符串中?
我想检查新num
值是否大于x
已写入分类帐的值,parseInt
似乎不起作用。
async transaction(ctx, id, num){
const x = await ctx.stub.getState(id);
if(parseInt(x, 10) > parseInt(num, 10)) {
// then something
}
}
编辑:已解决,事实证明,当我使用fabric-network
API 从客户端应用程序调用我的事务时,比较工作正常,但是在使用@worldsibu/hurley
.
解决方案
正如您正确提到 HLF 中的值存储为字节数组一样,您只是错过了在比较之前将 byteArray 转换为字符串的步骤。尝试这个:
const xAsString = x.toString();
if(parseInt(xAsString, 10) > parseInt(num, 10)) {
// then something
}
我还在考虑您仅在状态中存储了一个数字,如果不是,则从字符串中提取数字,然后进行所需的比较。
推荐阅读
- r - 在 R 中对高于和低于特定阈值的值进行分组
- javascript - React-Router 不会将我从组件重定向
- android - 如何确保我不会继续向我的房间数据库输入数据
- javascript - MERN stack err.kind 表达式:从哪里来?
- sql - 自己获取名字和姓氏
- sql - 如何在 SQL 中获取 COUNT - 当您有 2 个 JOINS 和一个日期范围时
- javascript - Dropzone 不会排队超过一项
- java - 特殊标识符:serialVersionUID 和 serialPersistentFields
- neo4j - 如何在 Neo4J 上使用 Cypher 在两个列表上进行元素明智的添加
- c# - 根据用户键入的文本过滤 Windows 窗体中的 DBTables 值