如何从超级账本中的资产更新价值
How to update values from an asset in hyperledger
型号
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);
});
在这里我想找到 rider_id 并在那里更新 parcel_id。但是这里找不到 rider_id.
主要是您需要通过资产标识符获取资产,在您的模型中使用 .get()
和 rider_id
时并非如此。
此外 - 可能需要更多信息 - 但这一切都取决于 id
从 assignValue.rider_id
获取值,我不知道它是如何定义/断言的以及它是否在范围内。但是,我可以看到 id
应该在您的功能范围内 - 但是使用正确的资产标识符,这应该有效(例如):
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);
});
等等;
ps 你可以查看 sample-networks 中的一些示例(例如在 'test' 目录下)——注意这些现在使用 async / await
函数(而不是 'promises' 如上所示)与 Node 8 一起出现(并且比使用 promises 更容易编写,仅供参考)
型号
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);
});
在这里我想找到 rider_id 并在那里更新 parcel_id。但是这里找不到 rider_id.
主要是您需要通过资产标识符获取资产,在您的模型中使用 .get()
和 rider_id
时并非如此。
此外 - 可能需要更多信息 - 但这一切都取决于 id
从 assignValue.rider_id
获取值,我不知道它是如何定义/断言的以及它是否在范围内。但是,我可以看到 id
应该在您的功能范围内 - 但是使用正确的资产标识符,这应该有效(例如):
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);
});
等等;
ps 你可以查看 sample-networks 中的一些示例(例如在 'test' 目录下)——注意这些现在使用 async / await
函数(而不是 'promises' 如上所示)与 Node 8 一起出现(并且比使用 promises 更容易编写,仅供参考)