客户端"/>
如何创建NestJs grpc客户端
正在尝试在docker env上创建NestJs gRPC客户端,但是在编译时我总是会收到此错误
[Nest] 1076 - 2020-05-19 23:59:34 [ClientProxy] The invalid gRPC package (package not found)
Error: The invalid gRPC package (package not found)
at ClientGrpcProxy.createClients (/app/node_modules/@nestjs/microservices/client/client-grpc.js:188:45)
at new ClientGrpcProxy (/app/node_modules/@nestjs/microservices/client/client-grpc.js:26:33)
at Function.create (/app/node_modules/@nestjs/microservices/client/client-proxy-factory.js:22:24)
at clients.map.item (/app/node_modules/@nestjs/microservices/module/clients.module.js:11:51)
at Array.map (<anonymous>)
at Function.register (/app/node_modules/@nestjs/microservices/module/clients.module.js:9:41)
at Object.<anonymous> (/app/dist/src/modules/orders/orders.module.js:31:43)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
/app/node_modules/@nestjs/microservices/client/client-grpc.js:190
throw invalidPackageError;
^
Error: The invalid gRPC package (package not found)
at ClientGrpcProxy.createClients (/app/node_modules/@nestjs/microservices/client/client-grpc.js:188:45)
at new ClientGrpcProxy (/app/node_modules/@nestjs/microservices/client/client-grpc.js:26:33)
at Function.create (/app/node_modules/@nestjs/microservices/client/client-proxy-factory.js:22:24)
at clients.map.item (/app/node_modules/@nestjs/microservices/module/clients.module.js:11:51)
at Array.map (<anonymous>)
at Function.register (/app/node_modules/@nestjs/microservices/module/clients.module.js:9:41)
at Object.<anonymous> (/app/dist/src/modules/orders/orders.module.js:31:43)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
我已经尝试重新安装软件包(gRPC,@ grpc / proto-loader和@ nestjs / microservices),
尝试使用文档中提供的两种方法时遇到此问题
<< [第一个方法和@Client装饰器
@Client({
transport: Transport.GRPC,
options: {
package: 'app',
protoPath: join(__dirname, '../../../../../../src/modules/orders/proto/app.proto'),
},
})
private client : ClientGrpc
private grpcService: IGrpcService;
onModuleInit(){
this.grpcService= this.client.getService<IGrpcService>('AppController')
}
在appmodule.ts中使用ClientModule第二种方法
ClientsModule.register([{
name:'TEST',
transport: Transport.GRPC,
options: {
package: 'app',
protoPath: join(__dirname, '../../../../src/modules/orders/proto/app.proto'),
},
}])
原始文件
syntax = "proto3";
package role;
service RoleService {
rpc CheckPermission (StringMessage) returns (BooleanPayload) {}
rpc AddPolicy (StringMessage) returns (BooleanPayload) {}
}
message StringMessage {
repeated string params = 1;
}
message Role {
string id = 1;
string codeName = 2;
string label = 3;
string createdAt = 4;
string updatedAt = 5;
}
message BooleanPayload {
bool success = 1;
}
回答如下:我已修复它,问题出在我的原始文件包和服务中,我已将其更改为在使用它时控制器的名称。
更多推荐
如何创建NestJs grpc客户端
发布评论