Hyperledger Composer Query Access Возвращенный идентификатор ресурса - PullRequest
0 голосов
/ 03 июля 2018

У меня был вопрос, касающийся возвращаемого значения запроса в hyperledger composer.

Для справки мой запрос:

query findCountOfficer {
  description: "find count officer asset given name"
  statement:
    SELECT org.example.CountOfficer
        WHERE (name == _$nameParam)
}

Мои запросы:

let countOfficerRecord = await query('findCountOfficer', {nameParam: countOfficerName})

Я пытаюсь получить идентификатор счетчика из параметра записи счетчика.

Кто-нибудь знает, как получить доступ к идентификатору или полям ресурса, возвращенного из запроса?

Или, если не так, как запрос вернуть идентификатор employeeI? (т.е. выберите идентификатор сотрудника)

Что я пробовал:

Когда я печатаю countOfficerRecord, я получаю Resource {id=org.carm.CountOfficer#1}

Я хочу получить доступ к 1 ID. Однако, если я позвоню countOfficerRecord.id или countOfficerRecord.employeedId (поскольку employeeId является идентификатором в файле модели), я получу undefined.

Поскольку это Ресурс, я также попробовал функции из документации, такие как getIdentifier() и isResource(), и получил ошибку, что эти функции не были для countOfficerRecord.

Спасибо!

Ответы [ 3 ]

0 голосов
/ 03 июля 2018

Похоже, что вы вызываете метод toString () для имеющегося у вас объекта ресурса (явным или неявным образом через любой механизм, который вы используете для печати объекта). Вывод, который вы видите, является результатом этого вызова toString, а не представлением объекта в формате JSON, вы можете взаимодействовать с объектом ресурса, используя его API, например,

console.log(countOfficerRecord.getIdentifier()); console.log(countOfficerRecord.name)

Приведенный выше пример ссылается на идентификатор $, который не рекомендуется, так как это внутреннее имя поля и может измениться в будущем. Вы должны использовать API объекта ресурса для получения информации.

Ссылку API для ресурса можно найти здесь

https://hyperledger.github.io/composer/latest/api/common-resource

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

Я попробовал это, и это сработало. Запросы обычно возвращают массив. Поэтому сначала вы ссылаетесь на массив, а затем получаете идентификатор. countOfficerRecord[0].$identifier

0 голосов
/ 03 июля 2018

Если вы хотите получить идентификатор, попробуйте это

console.log( countOfficerRecord.$identifier)

если вам нужна вся запись countOfficerRecord

тогда попробуйте это

console.log([countOfficerRecord])
...