我正在尝试使用NodeJS中的fabric-shim构建一个chaincode应用程序。当我使用putState(key,Buffer.from(value))时,该值不反映在CouchDB中,而key和其他参数(存根等)可以在CouchDB中看到。 有什么理由无法奏效?
答案 0 :(得分:0)
是的,如果您查看CouchDB文档,它将不会显示相应键的值。但是您会看到文档的附件实际上具有字节数组或键的缓冲区值。
请检查下图以查看示例附件,如果单击该附件将以二进制文件的形式下载。
如果要获取确切值,请使用以下脚本获取数据库转储
https://github.com/danielebailo/couchdb-dump
因此,在数据库转储后,您将看到带有数据的JSON对象,它是其中的关键之一,如下所示
{
"_id": <<id>>,
"_rev": <<rev>>,
"~version": <<version>>,
"_attachments": {
"valueBytes": {
"content_type": "application/octet-stream",
"revpos": 1,
"digest": <<key>>,
"data": "AAAHAQA=" ==> <<value in Base64 format>>
}
}
}
使用Base64解码器,您可以解码将以字节数组或缓冲区形式返回值的值。然后,您可以将字节数组或缓冲区转换为相应的对象。