【发布时间】:2020-01-07 02:42:50
【问题描述】:
我知道从技术上讲
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 的 CLI 时错误仍然存在。
【问题讨论】:
-
parseInt() 方法可能是有效的,调试时你检查过'x'和'num'的值吗?很可能它们没有被设置或设置为您认为应该的。
-
附言。我正在使用
@worldsibu/hurleynpm 包来设置我的网络并从 CLI 测试我的交易逻辑。是的,这些值是作为字符串发送的,因为当我简单地分配它们而不进行解析和比较时,一切正常。 -
您能否分享在测试时传递给该方法的内容?就像在 if 块行上放置断点时的“x”和“num”的快照
-
这个运气好吗?
标签: javascript node.js hyperledger-fabric hyperledger