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

NestJS中使用谷歌Cloud Speech-to-Text的.proto运行gRPC报错求解决

问题原因及对应解决方案

  • 配置字段错误
    你代码中的gRPC配置项写错了,options下定义监听地址的字段应为url,不是options,修改后的配置如下:
async function bootstrap() {
  const app = await NestFactory.createMicroservice(AppModule, {
    transport: Transport.GRPC,
    options: {
      url: 'localhost:3001',
      package: 'google.cloud.speech.v1p1beta1', 
      protoPath: join(__dirname, './speech/speech.proto'),
      loader: {
        includeDirs: [join(__dirname, './speech')]
      }
    }
  });
  await app.listen();
  console.log(`Microservice is listening`);
}

新增的loader.includeDirs配置是用来指定proto导入的根目录,方便加载依赖的其他proto文件。

  • proto依赖缺失
    谷歌官方的Cloud Speech-to-Text proto不是独立文件,它依赖多个谷歌公共proto定义,包括但不限于google/api/annotations.proto、google/rpc/status.proto、google/longrunning/operations.proto。你需要将这些依赖的proto文件按照导入路径的目录结构,放到你指定的includeDirs对应目录下,否则加载proto时会找不到依赖抛出错误。

  • 额外说明
    如果你只是需要调用谷歌Cloud Speech-to-Text的服务,不需要自行搭建gRPC服务端实现,直接使用谷歌官方提供的Node.js客户端包即可,无需手动处理proto加载逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:54:03