我对Hyperledger作曲器中查询的返回值有疑问。
我的查询供参考:
query findCountOfficer {
description: "find count officer asset given name"
statement:
SELECT org.example.CountOfficer
WHERE (name == _$nameParam)
}
我的查询
let countOfficerRecord = await query('findCountOfficer', {nameParam: countOfficerName})
我正在尝试从计数官员记录参数中检索计数官员的ID。
有人知道如何访问查询返回的资源的标识符或字段吗?
如果不是这样,如何让查询返回employeeId? (即选择employeeID)
我尝试过的事情:
当我打印countOfficerRecord
时,我得到Resource {id=org.carm.CountOfficer#1}
我要访问1个ID。但是,如果我调用countOfficerRecord.id
或countOfficerRecord.employeedId
(因为employeeId是模型文件中的标识符),则会得到undefined
。
由于这是资源,因此我还尝试了getIdentifier()
和isResource()
等文档中的函数,并得到一个错误,指出这些不是countOfficerRecord
的函数。
谢谢!
答案 0 :(得分:0)
如果您想获取标识符,请尝试
for angle = 0:inceasedNumber:359
如果要整个记录 countOfficerRecord
然后尝试一下
console.log( countOfficerRecord.$identifier)
答案 1 :(得分:0)
似乎您正在对拥有的资源对象调用toString()方法(通过用于打印对象的任何机制来显式或隐式)。您看到的输出是toString调用的结果,而不是对象的JSON表示形式,您可以使用资源对象的api与资源对象进行交互,例如
console.log(countOfficerRecord.getIdentifier());
console.log(countOfficerRecord.name)
上面的示例引用了$ identifier,这不是推荐的方法,因为这是一个内部字段名称,将来可能会更改。您应该使用资源对象的api来获取信息。
可在此处找到资源的api参考
https://hyperledger.github.io/composer/latest/api/common-resource
答案 2 :(得分:0)
我尝试了这个,它奏效了。
查询通常返回一个数组。因此,您首先引用该数组,然后获取标识符。
countOfficerRecord[0].$identifier