Hyperledger fabric 如何更新hyperledger中资产的值

Hyperledger fabric 如何更新hyperledger中资产的值,hyperledger-fabric,hyperledger,hyperledger-composer,Hyperledger Fabric,Hyperledger,Hyperledger Composer,型号 asset Route identified by route_id { o String route_id o String rider_id o String parcel_id } transaction assignParcelToRider { o String rider_id o String parcel_id } logic.js var assetRegistry; var id = assignValue.rider_id; return get

型号

asset Route identified by route_id {
  o String route_id
  o String rider_id
  o String parcel_id
}
transaction assignParcelToRider {
  o String rider_id
  o String parcel_id
}
logic.js

var assetRegistry;
var id = assignValue.rider_id;
return getAssetRegistry('org.rytle.Route').then(function(ar) {
    assetRegistry = ar;
    return assetRegistry.get(id);
}).then(function(asset) {
    asset.parcel_id = assignValue.parcel_id;
    return assetRegistry.update(asset);
});

我想在这里找到车手id并在那里更新包裹id。但是这里没有找到骑手id。

主要的问题是您需要通过使用
时的资产标识符来获取资产。get()
骑手id
在您的模型中不是这样的

另外-可能需要更多信息-但这一切都取决于
id
assignValue.rider\u id
中获取值,我无法判断这是如何定义/断言的,以及它是否在范围内。但是,我可以看到
id
应该在下面的功能范围内-但是使用正确的资产标识符,这应该有效(例如):

等等

ps您可以查看一些示例(例如在“test”目录下)-请注意,这些示例现在使用节点8附带的
async/await
函数(而不是上面显示的“promissions”)(编写起来比使用promissions要容易得多,仅供参考)

return getAssetRegistry('org.rytle.Route').then(function(ar) {
      return ar.get(route_id)   // or whatever you've assigned it to or txnobject.route.getIdentifier());   // ie you must get the asset by identifier
      }).then(function(asset) {
           asset.parcel_id = id;   
           return ar.update(asset);
       });