Alb*_*ses 2 protocol-buffers node.js grpc
我想要实现的是我有一个.proto文件:
message Request {
Error error = 1;
bool success = 2;
}
message Error {
int32 status = 1;
string message = 2;
}
Run Code Online (Sandbox Code Playgroud)
我对其进行编译,以便为客户端和服务生成文件。然后,当我想设置grpc生成的内容时setError(),我必须传递给函数什么?(匹配错误消息)。一个对象,例如:
{
status: 200,
message: "Success!"
}
Run Code Online (Sandbox Code Playgroud)
不起作用...有效的是:
const error = new Client.Error();
error.setMessage('Something');
error.setStatus(400);
Run Code Online (Sandbox Code Playgroud)
然后,如果我有一条请求消息:
const request = new Client.Request()
request.setError(error)
Run Code Online (Sandbox Code Playgroud)
这可行,但我想知道是否可以直接将对象传递给 setError,而不必单独设置每个字段......
不幸的是,protobuf 的 javascript 编译器生成的代码强制您使用 setter 和 getter,因此您必须一一设置每个字段。
如果您不喜欢这种方法,您可以随时尝试使用动态 codegen 方法,该方法使用 protobufjs,并允许您使用普通对象作为可以传递的内容。这两种方法各有优缺点,但如果您想摆脱设置器,那就是正确的方法。
| 归档时间: |
|
| 查看次数: |
968 次 |
| 最近记录: |