Protocol buffers 如何根据protobuf-grpc规范正确格式化响应对象

Protocol buffers 如何根据protobuf-grpc规范正确格式化响应对象,protocol-buffers,grpc,grpc-node,Protocol Buffers,Grpc,Grpc Node,我有以下protobuf定义: service MyService { rpc ServiceMethod (ServiceMethodRequest) returns (ServiceMethodResponse) {} } message ServiceMethodRequest{ string requestParam = 1; } message ServiceMethodResponse{ Error error = 1; SomeObjectList

我有以下protobuf定义:

service MyService {
    rpc ServiceMethod (ServiceMethodRequest) returns (ServiceMethodResponse) {}
}

message ServiceMethodRequest{
    string requestParam = 1;
}
message ServiceMethodResponse{
    Error error = 1;
    SomeObjectList data = 2;
}
message Error{
    string code = 1;
    string errorMessage = 2;
}

message SomeObject {
    string myobject = 1;
}
message SomeObjectList {
    repeated SomeObject myobjects = 1;
}

正如您所看到的,我希望返回格式化的响应,这样我的API就有了一些标准化的响应方式。我将我的响应格式化如下(由于可读性,这是JSON格式):

但在客户方面,我不断得到:

{ Error: 2 UNKNOWN: Unknown Error
    at Object.exports.createStatusError (.../node_modules/grpc/src/common.js:91:15)
    at Object.onReceiveStatus (.../node_modules/grpc/src/client_interceptors.js:1204:28)
    at InterceptingListener._callNext (.../node_modules/grpc/src/client_interceptors.js:568:42)
    at InterceptingListener.onReceiveStatus (.../node_modules/grpc/src/client_interceptors.js:618:8)
    at callback (.../node_modules/grpc/src/client_interceptors.js:845:24)
  code: 2,
  metadata: Metadata { _internal_repr: {}, flags: 0 },
  details: 'Unknown Error' }
当我尝试console.log响应对象时

我做错了什么? 还有,有没有关于grpc的好书,其中有一些例子(C,C#,Java,Python,JavaScript)? 提前谢谢

server.js

callback(null, message);

看起来应该能用了。。。忘记这里的细节,一个非常简单的请求/响应RPC调用是否有效?但总的来说:您不需要格式化响应—gRPC需要;这里的服务器是在说gRPC吗?是的,我没有格式化响应,我只是发送了对象,在这里我只是用JSON写的,因为我认为它更可读。当我只返回一些对象列表时,它就起作用了。
callback(null, message);