getQueryResult возвращает '[объект объекта]' вместо действительного json [фабрика гиперледжера] - PullRequest
0 голосов
/ 22 февраля 2019

Код контракта:

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?Спасибо!

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Решено сейчас!Проблема была в том, что я не знал, как перебирать ключи, которые он возвращает правильно.Тип возвращаемого значения - StateQueryIterator, и я не правильно его использовал.Исправил это, и я получил результат.

0 голосов
/ 22 февраля 2019

Это потому, что queryResult является объектом, а Object.toString() возвращает [object Object].Используйте JSON.stringify, чтобы преобразовать объект в строку, затем JSON.parse, чтобы получить объект обратно:

return JSON.stringify(queryResult);

И:

console.log(JSON.parse(newQuery));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...