我正在通过Hyperledger作曲家游乐场编写网络。
这里我有一个名为患者的资产,并且患者具有医院的列表, 我有一个名为 GetPatientHospitals 的事务,该事务用于调用函数 getPatientHospitals ,我希望此函数打印出ID列表(例如 resource之类的东西: org.acme.patientchain.PatientHospital#5wyjftthjr (在我测试时), 但是当我测试我的功能时,它只会告诉我我的交易已经提交,没有可以看到输出的地方,有什么办法吗?还是我需要其他资产来存储这些消息?
我的 getPatientHospitals 功能:
function getPatientHospitals(gethospitals){
return getAssetRegistry('org.acme.patientchain.Patient')
.then(function (PatientAssetRegistry) {
// Get the patient asset
return PatientAssetRegistry.get(gethospitals.patient.pubKeyPatient);
})
.then(function (patienthospital) {
return patienthospital.hospitals;
})
} //list of hospitals
我的 GetPatientHospitals 交易和患者资产:
transaction GetPatientHospitals {
--> Patient patient
}
asset Patient identified by pubKeyPatient {
o String pubKeyPatient
--> PatientHospital[] hospitals
}
这是我测试过的患者的医院:
{
"$class": "org.acme.patientchain.Patient",
"pubKeyPatient": "1652",
"hospitals": [
"resource:org.acme.patientchain.PatientHospital#5wyjftthjr",
"resource:org.acme.patientchain.PatientHospital#mgnl6ag4vh",
"resource:org.acme.patientchain.PatientHospital#5wyjftthjr"
]
}
我想在 #
之后打印这些资源或ID但是我什么地方都看不到输出,我可以在这个操场上“打印”吗?
答案 0 :(得分:1)
您可以在js文件中使用console.log()
。然后,您可以在浏览器开发人员控制台中看到输出。对于Firefox和Chrome,您可以使用 CTRL-SHIFT-I 显示开发者控制台。
仅当您将Playground与“ Web”配置文件一起使用时,此方法才有效,然后您将在浏览器控制台中看到console.log输出。如果您使用Playground连接到本地Fabric实例,则console.log输出将在Chaincode容器的日志中。
尝试使用console.log(patienthospital.hospitals)
并在开发人员控制台中检查输出。
答案 1 :(得分:0)
要打印该值,您需要在cto
文件中进行一笔交易。
Hyperledger编写器提供交易处理器功能。它可以选择将数据返回到客户端应用程序。这对于将收据退还给交易的提交者或退还交易修改的资产很有用,以避免在交易完成后单独查找资产。数据也可以通过业务网络的事务 REST API 返回到客户端应用程序。
我建议您点击以下链接:
希望它会对您有所帮助:)