Angular gRPC客户端提示URL Scheme不支持,求解决方案
gRPC客户端调用方法运行时错误原因分析
问题概况
用grpc-gen-ts生成TypeScript版gRPC文件,基于生成的pb_service文件创建客户端后,调用listCredentials方法时触发运行时错误。调用代码如下:
const client = new ServiceClient("localhost:8083") const req = new Request() client.listCredentials(req, (error, respose) => { if (error) { console.log(error) } else { console.log(respose) } })
控制台错误为:TypeError: Cannot read properties of undefined (reading 'listCredentials')
可能的原因
客户端初始化缺少必要参数:
ServiceClient构造时需要传入gRPC凭证参数(比如非安全凭证或TLS凭证),仅传入地址会导致实例未正确初始化,内部方法未挂载。正确的初始化方式应为:const client = new ServiceClient("localhost:8083", grpc.credentials.createInsecure());生成的gRPC文件不完整:
grpc-gen-ts生成过程可能存在异常,导致ServiceClient类未正确生成listCredentials方法。可以直接检查生成的pb_service文件,确认该方法是否存在于类定义中。模块导入错误:如果
ServiceClient或Request的导入路径错误、或使用了错误的导入方式(比如用默认导入替代命名导入),会导致创建的实例并非预期的gRPC客户端,自然找不到目标方法。依赖版本不兼容:
grpc-gen-ts与项目中grpc或@grpc/grpc-js的版本不匹配,生成的客户端代码与运行时依赖逻辑冲突,导致方法无法正常绑定到实例。
内容的提问来源于stack exchange,提问作者Ganesh Venkatachalapathy
相关产品推荐
相关产品推荐

