我浏览了文档但还没有找到解决方案。该应用程序基于其文档中的"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但没找到解决方案
答案 0 :(得分:2)
为符合JavaScript命名约定,应提供方法,首字母小写:
server.addProtoService(protoDef.DatabaseRPC.service, {
insertSingleDocument: InsertSingleDocument
})
您可以在链接的Hello World示例中看到这一点。该方法在proto文件中声明为SayHello
,但是作为sayHello
传递给服务器。
注意:我同意这令人困惑,I will try to improve the situation。