如何在nodejs中返回grpc错误

时间:2017-03-16 09:10:23

标签: node.js grpc

我想在服务器端返回grpc错误代码和说明。我试过这个

function sayHello(call, callback) {
  callback({error: {code: 400, message: "invalid input"});
}

但是我从客户端

获得了这个例外
{ Error: Unknown Error
    at /home/thanh/email/node_modules/grpc/src/node/src/client.js:434:17 code: 2, metadata: Metadata { _internal_repr: {} } }

如果我想要在此类消息定义中包含错误字段。

message Hello {
  string name = 1;
  string error = 2; // don't want this
}

那么将grpc错误发送回客户端的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

将其更改为:

return callback({
  code: 400,
  message: "invalid input",
  status: grpc.status.INTERNAL
})

答案 1 :(得分:1)

作为补充,GRPC仅允许16种错误。您可以从其站点https://github.com/avinassh/grpc-errors/blob/master/node/server.js中检查所有错误代码。

在这里,我找到了NodeJs错误处理的示例代码:{{3}}