假设我们有一个带有 proto 文件的 Node.js 项目:
syntax = "proto3";
package bookstore;
service Bookstore {
rpc AddBook (AddBookRequest) returns (AddBookResponse) {}
}
还有一个服务器文件server.js:
// Implement the AddBook RPC method
function addBook(call, callback) {
...
}
...
function main() {
const server = new grpc.Server();
server.addService(bookstoreProto.Bookstore.service, {
addBook: addBook,
});
...
}
...
addBook
(小写a)如何知道映射到AddBook
(大写a)?编译后的 proto 文件有一行指示 requestType: bookstore_pb.AddBookRequest,
,其大写字母 A
。
我对小写方法如何以某种方式映射到大写原型定义感到困惑。
看起来从 .proto 文件生成的 .js 文件实际上以小写形式输出了该方法。
addBook: {
path: '/bookstore.Bookstore/AddBook',
requestStream: false,
responseStream: false,
requestType: bookstore_pb.AddBookRequest,
responseType: bookstore_pb.AddBookResponse,
requestSerialize: serialize_bookstore_AddBookRequest,
requestDeserialize: deserialize_bookstore_AddBookRequest,
responseSerialize: serialize_bookstore_AddBookResponse,
responseDeserialize: deserialize_bookstore_AddBookResponse,
},