0

合约代码:

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 的函数。任何人都可以帮助我了解如何getQueryResult在 javascript 中使用该函数吗?谢谢!

4

2 回答 2

2

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

return JSON.stringify(queryResult);

和:

console.log(JSON.parse(newQuery));
于 2019-02-22T04:05:25.947 回答
0

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

于 2019-02-22T13:29:41.083 回答