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

NestJS gRPC无法使用其他代码

如何解决NestJS gRPC无法使用其他代码

我已经实现了gRPC,如下所示:

  @Client(microserviceOptions)
  private client: ClientGrpc;

  private grpcService: IGrpcService;

  // constructor(private mathService: MathService) {}

  onModuleInit() { 
    this.grpcService = this.client.getService<IGrpcService>('AppController');
  }           

nestJS中实现gRPC时,我观察到当我们直接进行简单的过程调用时,它可以完美地工作在文件中。下面的代码片段运行正常。这意味着它将致电服务并成功工作

  @Post('upload')
  async fileValidator( @Body('data') data: number[] ){
    return this.grpcService.accumulate({ data })
  }

但是,在调用gRPC服务之前执行了一些其他处理后,不会调用同一gRPC服务。例如,下面的代码不起作用,这意味着未调用gRPC服务。

   this.logger.log('Adding ' + data.toString());
    let fileName = join(__dirname,'./','sample_17_10_2020_11_5_16.csv')
    let stream = createReadStream(fileName)
    let lineCount = 0;
    let totalRecords = null
    const rl = createInterface(stream)
    var chunks = [];
    var tempChunk = [];
          
    rl.on('line',(line)=>{
        let splitted = line.split(',');
        if( splitted[0] == ''){

        } else if(splitted.length == 5){
            //count
            lineCount++;
            tempChunk.push(line);
            
        }else if(splitted.length == 3){
            //this is first line .. ignore

        } else if(splitted.length == 1){
            //this is last line
            totalRecords = splitted[0]
        }

        if((lineCount != 0 && lineCount % 100 == 0 ) || (totalRecords != null)){
            if(tempChunk.length > 0){
                chunks.push(tempChunk)
                tempChunk = []
            }
        }
      
    }).on('close',()=>{
        return this.grpcService.accumulate({ data });

    })

这里可能有什么问题?

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