Hyperledger Composer查询访问返回的资源ID

时间:2018-07-03 00:58:52

标签: javascript hyperledger-composer

我对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.idcountOfficerRecord.employeedId(因为employeeId是模型文件中的标识符),则会得到undefined

由于这是资源,因此我还尝试了getIdentifier()isResource()等文档中的函数,并得到一个错误,指出这些不是countOfficerRecord的函数。

谢谢!

3 个答案:

答案 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