微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法使用grpcurl发送请求

如何解决无法使用grpcurl发送请求

我有一台使用nestJs + gRPC的服务器,我在Postgresql中存储数据,获取数据等没有问题。我无法发送grpcurl请求:((

async function bootstrap() {
  const app = await nestFactory.create(AppModule);
  app.connectMicroservice<MicroserviceOptions>(grpcclientOptions);

  await app.startAllMicroservicesAsync();
  await app.listen(3000);
  console.log(`Application is running on: ${await app.getUrl()}`);
}
(async () => await bootstrap())();

export const grpcclientOptions: ClientOptions = {
  transport: Transport.GRPC,options: {
    url: '0.0.0.0:5000',package: 'user',protoPath: join(__dirname,'user/user.proto'),loader: {
      keepCase: true,longs: Number,defaults: false,arrays: true,objects: true,},};

原始文件外观

Syntax = "proto3";

package user;

service UserService {
  rpc FindOne (UserById) returns (User) {}
}

message UserById {
  string id = 1;
}

message User {
  int32 id = 1;
  string name = 2;
  string password = 3;
  string email = 4;
  string createdAt = 5;
  string updatedAt = 6;
}

用户控制器

  @Get(':id')
  getById(@Param('id') id: string): Observable<User> {
    console.log(id);
    return this.userService.findOne({ id : +id });
  }

  @Grpcmethod('UserService','FindOne')
  async findOne(data: UserById): Promise<User> {
    const { id } = data;
    console.log(id);
    return this.usermodel.findOne({
      where: {
        id : id
      },});
  }

当我从浏览器发送请求时,它可以正常工作,但是我无法使用grpcurl发出请求。 enter image description here

谢谢前进!

解决方法

我怀疑(!)问题是您在Windows上但在/之间使用正斜杠(src/user),而在Windows(!?)上文件路径分隔符应该是反斜线-斜杠(\)。

请在Microsoft Test gRPC services with gRPCurl上查看此链接,然后尝试-d '{\"id\": 1}'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。