You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js 20+环境下gRPC服务server.start()弃用后的替代方案咨询

Node.js 20+ 中 gRPC server.start() 弃用后的替代方案

在新版gRPC Node.js库(配合Node.js 20+使用时),server.start()方法已被弃用,核心原因是调用bindAsync完成端口绑定后,服务会自动启动,无需再手动执行启动操作。

正确的服务启动写法

你当前注释掉server.start()的代码已经是合规的正确写法,完整示例如下:

function main() {
  var server = new grpc.Server();
  server.addService(hello_proto.Greeter.service, {sayHello: sayHello});
  server.bindAsync('0.0.0.0:50051', grpc.ServerCredentials.createInsecure(), (error, port) => {
    if (error) {
      console.error(`Server binding failed: ${error.message}`);
      return;
    }
    console.log(`Server running at http://0.0.0.0:${port}`);
    // 无需调用 server.start(),服务已自动启动
  });
}

关键注意点

  • 当bindAsync的回调函数无错误执行时,gRPC服务已经完成绑定并处于运行状态,额外调用server.start()会触发弃用警告
  • 若仍在使用旧版grpc包,建议迁移到官方维护的@grpc/grpc-js包,两者的该行为逻辑一致
  • 后续版本的gRPC库可能会彻底移除server.start()方法,尽早移除该调用可避免兼容性问题

内容的提问来源于stack exchange,提问作者Hiwa Sedradin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 05:07:03