如何在Hyperledger 1.4.4的Node.js中使用setTransient和getTransient(示例)?

如何在Hyperledger 1.4.4的Node.js中使用setTransient和getTransient(示例)?,node.js,hyperledger-fabric,hyperledger-chaincode,Node.js,Hyperledger Fabric,Hyperledger Chaincode,此时,我无法找到关于如何在Node.js中使用getTransient的清晰示例。也许你能帮我找到正确的链接 假设我在Node.js中有一个客户端应用程序,它提交如下内容: const privatePayload=new Buffer(JSON.stringify({“Args”:Args})).toString('base64'); const result=await contract.createTransaction(func).setTransient({“privatePayloa

此时,我无法找到关于如何在Node.js中使用getTransient的清晰示例。也许你能帮我找到正确的链接

假设我在Node.js中有一个客户端应用程序,它提交如下内容:

const privatePayload=new Buffer(JSON.stringify({“Args”:Args})).toString('base64');
const result=await contract.createTransaction(func).setTransient({“privatePayload”:privatePayload}).submit();
在我的Node.js链码中,我有如下内容:

var-MAP=ctx.stub.getTransient();
...
我看到的是,数据是以

{ privatePayload:
   { key: 'privatePayload'
     value: 
       ByteBuffer {
buffer: <Buffer 0a c1 .... >,
offset: ...,
...
}
{privatePayload:
{键:'privatePayload'
价值:
ByteBuffer{
缓冲区:,
偏移量:。。。,
...
}
我访问这个缓冲区,对它进行解码,发现它不仅包含作为字符串的有效负载,还包含OrgMSP的名称、证书、通道信息等。我的有效负载在最后

是否有现成的API来访问我的有效负载?
这个缓冲区的实际格式是什么?

试试
chaincodeStub.getTransient().get('key').toString('utf8')
,你不必对getTransient()使用“await”,因为函数已经返回了一个值映射。类似的方法可以工作:

var MAP = ctx.stub.getTransient();

我面临一个问题,我尝试了完全相同的代码,但问题是当我尝试让transientData=await ctx.stub.getTransient();从chaincode我得到的是空响应。我的nodeJS客户端代码是const privatePayload=Buffer.from(JSON.stringify(args))const result=await contract.createTransaction(functionName).setTransient({“privatePayload”:privatePayload}).submit();还有什么需要补充的吗?请参见下面的答案。