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

我翻阅了文档,还没有find解决scheme。 该应用程序松散地基于来自其文档的“sayHello”示例 ,但是每次代码运行Method handler for /eventComm.DatabaseRPC/InsertSingleDocument expected but not provided的警告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() 

这个代码有什么问题? 当然,我已经试图谷歌错误,但没有find解决办法

为了符合JavaScript命名约定,方法应该提供小写的第一个字母:

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

你可以在你链接的Hello World例子中看到这个。 该方法在proto文件中声明为SayHello ,但是以sayHelloforms传递给服务器。

注:我同意这是令人困惑的, 我会尽力改善这种情况 。