2017-03-16 52 views
0

我想在服务器端返回grpc错误代码和描述。我已经试过这如何在nodejs中返回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

将其更改为:

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

我想指出的是,'code'场不会做任何事情在这里。如果您想传播给客户端,则需要将其添加到错误“元数据”中。如果你想要HTTP错误代码400的语义,我会建议使用相应的gRPC状态:'grpc.status.INVALID_ARGUMENT'。 – murgatroid99