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

问题描述 投票:1回答:3

我对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})

我试图从计数官员记录参数中检索计数官员的ID。

有谁知道如何访问查询返回的资源的标识符或字段?

或者如果没有,如何查询返回employeeId? (即选择employeeID)

我尝试过的:

当我打印countOfficerRecord我得到Resource {id=org.carm.CountOfficer#1}

我想访问1个ID。但是,如果我调用countOfficerRecord.idcountOfficerRecord.employeedId(因为employeeId是模型文件中的标识符),我会得到undefined

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

谢谢!

javascript hyperledger-composer
3个回答
0
投票

如果你想获得标识符,那么试试这个

console.log( countOfficerRecord.$identifier)

如果你想要countOfficerRecord的整个记录

然后尝试这个

console.log([countOfficerRecord])

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


0
投票

我试过这个并且它有效。查询通常返回一个数组。因此,您首先引用该数组,然后获取标识符。 countOfficerRecord[0].$identifier

© www.soinside.com 2019 - 2024. All rights reserved.