2017-03-16 73 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