getQueryResult返回“ [object Object]”,而不是有效的json [hyperledger fabric]

时间:2019-02-22 03:54:43

标签: javascript node.js json object ecmascript-6

合同代码:

async function queryCar(ctx, query) {

        let queryResult = await.ctx.stub.getQueryResult(query);
        console.log(queryResult.toString());

        return queryResult.toString();
        }

我如何在API中调用该函数:

 var stringQuery = `{"selector": {"id": "17"}}`
    newQuery = await contract.evaluateTransaction('richQuery',stringQuery);
    console.log(JSON.parse(newQuery));

stringQuery的值不是对CouchDB的有效查询吗?

也许我在使用该函数时出错,因为文档中谈到了该函数返回StateQueryIterator的情况。谁能帮助我了解如何在JavaScript中使用getQueryResult函数?谢谢!

2 个答案:

答案 0 :(得分:1)

这是因为queryResult是一个对象,而Object.toString()返回[object Object]。使用JSON.stringify将对象转换为字符串,然后使用JSON.parse将其找回对象:

return JSON.stringify(queryResult);

并且:

console.log(JSON.parse(newQuery));

答案 1 :(得分:0)

现在解决了!我的问题是我不知道如何遍历它正确返回的键。它的返回类型是StateQueryIterator,我没有正确使用它。解决了,我得到了结果。