NodeJS gRPC:“预期但未提供的方法处理程序”

时间:2017-03-09 22:28:29

标签: javascript node.js rpc grpc

我浏览了文档但还没有找到解决方案。该应用程序基于其文档中的"sayHello"-example,但每次代码运行时都会返回警告Method handler for /eventComm.DatabaseRPC/InsertSingleDocument expected but not provided

我的原型文件:

service DatabaseRPC {
  rpc InsertSingleDocument (Doc) returns (Doc) {} 
}

message Doc {
  required string name = 1;
  required int32 id = 2;
}

我的gRPC服务器:

  function InsertSingleDocument (call, callback) {
    callback(null, {
      name: 'Hello ',
      id: 1
    })
  }
  let server = new grpc.Server()
  server.addProtoService(protoDef.DatabaseRPC.service, {
    InsertSingleDocument: InsertSingleDocument
  })
  server.bind('0.0.0.0:50051', grpc.ServerCredentials.createInsecure())
  server.start()

此代码有什么问题?当然我已经尝试google the error但没找到解决方案

1 个答案:

答案 0 :(得分:2)

为符合JavaScript命名约定,应提供方法,首字母小写:

server.addProtoService(protoDef.DatabaseRPC.service, {
  insertSingleDocument: InsertSingleDocument
})

您可以在链接的Hello World示例中看到这一点。该方法在proto文件中声明为SayHello,但是作为sayHello传递给服务器。

注意:我同意这令人困惑,I will try to improve the situation