我想在服务器端返回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错误发送回客户端的正确方法是什么?
3条答案
按热度按时间nxowjjhe1#
将其更改为:
mrzz3bfm2#
作为补充,GRPC只允许16种错误,你可以从它的站点检查所有错误代码:https://grpc.io/docs/guides/error/#error-status-codes。
在这里我找到了NodeJ错误处理的示例代码:https://github.com/avinassh/grpc-errors/blob/master/node/server.js
1qczuiv03#
为了弄清楚@avi和@murgatroid99说了什么,你要做的是像这样构造回调:
grpc.status.NOT_FOUND
只是一个整数5,当客户端从服务器获得错误响应时,您可以从返回的err
属性中读取它,例如: