Ich habe die Dokumente durchsucht und noch keine Lösung gefunden. Die App basiert lose auf der "sayHello"-example aus ihren Dokumenten, aber jedes Mal, wenn der Code ausgeführt wird, wird die Warnung Method handler for /eventComm.DatabaseRPC/InsertSingleDocument expected but not provided
zurückgegeben.NodeJS gRPC: "Methodenhandler erwartet, aber nicht bereitgestellt"
Meine proto-Datei:
service DatabaseRPC {
rpc InsertSingleDocument (Doc) returns (Doc) {}
}
message Doc {
required string name = 1;
required int32 id = 2;
}
Mein gRPC Server:
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()
Was ist das Problem mit diesem Code? Natürlich habe ich versucht, bereits zu google the error fand aber sollen mit dem ersten Buchstaben keine Lösung
Vielen Dank. Ich habe den unteren Fall im Beispiel völlig vermisst. Ist es auch ein Problem mit anderen Sprachen? Vielleicht würde es helfen, ein Benennungsschema zu erzwingen, bei dem alle Funktionen mit einem Anfangsbuchstaben in der Proto-Datei deklariert werden. – trahloff
In mehreren Sprachen wird erwartet, dass Methodennamen dem Benennungsschema dieser Sprache folgen. Diese Benennungsschemata können jedoch unterschiedlich sein. Die Deklaration, die Sie in der Proto-Datei haben, stimmt mit der Namenskonvention für Proto-Dateien überein. – murgatroid99
Ok, danke für die Klarstellung. Könnte das zur Dokumentation hinzugefügt werden? In großen roten Buchstaben. Ich mag gRPC bis jetzt, aber ich habe dieses Bit komplett übersehen, als ich den [Quick Start Guide] (http://www.grpc.io/docs/quickstart/node.html#update-a-grpc-service) gelesen habe. – trahloff