【问题标题】:Property `message` in error response body cannot be accessed | Hyperledger Fabric无法访问错误响应正文中的属性“消息”|超级账本结构
【发布时间】:2017-08-22 01:26:14
【问题描述】:

说明

使用节点,我发出一个典型的 API POST 请求,我有一个带有响应变量 err.catch 块。出错时,响应正文会按原样返回(从 Hyperledger Composer REST 应用程序中可以看到)

{
  "error": {
    "statusCode": 500,
    "name": "Error",
    "message": "error trying invoke chaincode. Error: chaincode error (status: 500, message: Error: Payment needs to be of positive value)",
    "stack": "Error: error trying invoke chaincode. Error: chaincode error (status: 500, message: Error: Payment needs to be of positive value)\n    at _initializeChannel.then.then.then.then.catch (/home/ubuntu/.nvm/versions/node/v6.11.1/lib/node_modules/composer-rest-server/node_modules/composer-connector-hlfv1/lib/hlfconnection.js:839:34)"
  }
}

我的问题

我只是想从上述响应中获取 message 属性并将其发送到 UI。但奇怪的是err.message 没有给我在message 中看到的值,而是返回整个响应正文(与err.stack 相同)。

所以基本上 -- errerr.messageerr.stack 返回相同的输出

我如何最终只获取属性中的值,比如message

PS:

err.statusCode 确实返回正确的值,即。 “500”。

err.name 返回“StatusCodeError”(不是我在响应中看到的“错误”)

【问题讨论】:

    标签: node.js hyperledger hyperledger-fabric hyperledger-composer


    【解决方案1】:

    好的,所以虽然不是真正的 Hyperledger Composer 问题 - 你可以试试 response.getBody() 吗?这只是一个例子,不是使用sn-p的代码

     var finalHost = "yoururl";  
      var r = new sn_ws.RESTMessageV2();  
      r.setHttpMethod("get");  
      r.setEndpoint(finalHost);  
      //r.setQueryParameter("locatenow", "true");  
      r.setBasicAuth(username,password);  
      var response = r.execute();  
      var responseBody = response.getBody();  
    // If response is in json format, directly you can send to client. 
    // If not then convert it.
    return responseBody;  
    
    // On client side 
    
    var newoptions = JSON.parse(jsonstring);   
    // returned resp. 
    

    您可能会考虑使用 Restify 之类的东西来处理 UI 端的错误? 请参阅此处底部的自述文件https://github.com/restify/errors/blob/master/README.md -> https://www.npmjs.com/package/restify-errors - 在此处查看此 S/O

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      相关资源
      最近更新 更多