如何从资产中控制日志值?在超级作曲家?

问题描述 投票:0回答:2

我正在通过hyperledger composer playground编写网络。

在这里,我有一个名为patient的资产,患者有医院列表,我有一个名为GetPatientHospitals的事务,用于调用函数getPatientHospitals,我希望这个函数打印出一个id列表(像资源: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

但是没有任何地方我能看到输出,我可以在这个操场上“打印”吗?

hyperledger blockchain hyperledger-composer
2个回答
1
投票

您可以在js文件中使用console.log()。然后,您可以在浏览器开发人员控制台中查看输出。对于Firefox和Chrome,您可以使用CTRL-SHIFT-I显示开发人员控制台。这仅适用于使用具有“Web”配置文件的Playground,然后您将在浏览器控制台中看到console.log输出。如果使用连接到本地Fabric实例的Playground,则console.log输出将位于Chaincode容器的日志中。

尝试使用console.log(patienthospital.hospitals)并检查开发人员控制台中的输出。


0
投票

用于打印在cto文件中进行一个事务所需的值。

Hyperledger composer提供事务处理器功能。它可以选择将数据返回给客户端应用程序这对于将收据返回给事务的提交者或返回由事务修改的资产以避免在提交事务之后单独查找资产非常有用。还可以通过业务网络的事务REST API将数据返回到客户端应用程序。

我建议你按照以下链接:

  1. returning data from transaction processor function
  2. composer github

希望它能帮到你:)

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