Node.js开发gRPC服务调用返回空响应无报错,如何排查?
问题原因
你的gRPC服务端返回的结构和proto文件中定义的返回类型不匹配:
proto中AllMessages接口定义的返回类型为MsgList,该类型要求外层是对象,内部用msgs字段承载消息数组,但你在服务端实现时直接将数组savedMessages传给了回调函数,gRPC无法匹配到msgs字段,因此返回了空数组。
修复方案
修改server.js中AllMessages方法的回调参数,按照MsgList的结构传入返回值即可:
server.addService(msgProto.MsgService.service, { AllMessages: (_, callback) => { // 外层包裹符合MsgList结构的对象 callback(null, { msgs: savedMessages }); } })
修改后重启服务端,客户端就能正常收到消息列表。
内容的提问来源于stack exchange,提问作者HARDY8118
相关产品推荐
相关产品推荐

