Как сохранить значение лога в активе? в композиторе Hyperledger? - PullRequest
0 голосов
/ 26 апреля 2019

Я пишу сеть на игровой площадке hyperledger composer.

Здесь у меня есть актив под названием пациент , а пациент имеет список больниц , у меня есть транзакция с именем GetPatientHospitals , которая используется для вызова функции getPatientHospitals , я хочу, чтобы эта функция выводила список идентификаторов (что-то вроде resource: org. acme.patientchain.PatientHospital # 5wyjftthjr при тестировании), но когда я проверял свою функцию, он только говорил мне, что моя транзакция была отправлена, нет места, где я мог видеть вывод, есть ли способ сделать это? или мне нужен другой актив для хранения этих сообщений?

My 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"
  ]
}

Я хочу напечатать эти ресурсы или просто идентификатор после #

но я нигде не мог видеть вывод, могу ли я сделать "печать" на этой площадке?

Ответы [ 2 ]

1 голос
/ 30 апреля 2019

Вы можете использовать console.log() внутри вашего файла js. Затем вы можете увидеть результат в консоли разработчика браузера. Для Firefox и Chrome вы можете отобразить консоль разработчика с CTRL-SHIFT-I . Это работает, только если вы используете Playground с профилем «Web», тогда вы увидите вывод console.log в консоли браузера. Если вы используете Playground, подключенную к локальному экземпляру Fabric, вывод console.log будет находиться в журнале контейнера Chaincode.

Попробуйте с помощью console.log(patienthospital.hospitals) и проверьте вывод в консоли разработчика.

0 голосов
/ 26 апреля 2019

Для печати значения необходимо совершить одну транзакцию в cto файле.

Компонент Hyperledger обеспечивает Функции процессора транзакций . При желании он может возвращать данные клиентским приложениям. Это может быть полезно для возврата квитанции отправителю транзакции или возврата актива, модифицированного транзакцией, чтобы избежать отдельного поиска актива после совершения транзакции. Данные также могут быть возвращены клиентскому приложению через транзакцию REST API для бизнес-сети.

Рекомендую перейти по ссылкам ниже:

  1. возврат данных из функции процессора транзакций
  2. композитор github

Надеюсь, это поможет вам:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...