2017-03-16 5 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'フィールドがここで何もしないことに注意したいと思います。クライアントに伝播させたい場合は、それを 'metadata'エラーに追加する必要があります。 HTTPエラーコード400の意味が必要な場合は、対応するgRPCステータスを使用することをお勧めします: 'grpc.status.INVALID_ARGUMENT'。 – murgatroid99

関連する問題