Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 提取和验证_Javascript_Typescript_Nestjs - Fatal编程技术网

Javascript 提取和验证

Javascript 提取和验证,javascript,typescript,nestjs,Javascript,Typescript,Nestjs,我正在从事一个基于nest.js框架的项目 以下是my函数的一个片段: @Post('beneficiaries/:beneficiaryId/bankDetails') @HttpCode(HttpStatus.OK) async addBankDetails(@Param('beneficiaryId', new ValidationPipe()) beneficiaryHash: BeneficiaryHashIdDto, @Body() body, @Headers() he

我正在从事一个基于nest.js框架的项目

以下是my函数的一个片段:

  @Post('beneficiaries/:beneficiaryId/bankDetails')
  @HttpCode(HttpStatus.OK)
  async addBankDetails(@Param('beneficiaryId', new ValidationPipe()) beneficiaryHash: BeneficiaryHashIdDto, @Body() body, @Headers() headers) {
    const beneficiary = await this.beneficiaryService.getBeneficiaryIdFromHash(beneficiaryHash, ['beneficiaryId', 'currencyCode', 'countryCode']);
    let routingOptions = await this.beneficiaryService.getBeneficiaryRoutingConfig(beneficiary.beneficiaryId, pick(headers, GET_HEADERS_LIST));
    routingOptions = lmap(routingOptions, partialRight(pick, ['bankDetail', 'beneficiaryRoutingConfigId']));
    const [routingConfig] = routingOptions.filter(item => item.beneficiaryRoutingConfigId === body.beneficiaryRoutingConfigId);
    if (!routingConfig) {
      throw new BadRequestException('Invalid beneficiaryRoutingConfigId');
    }
    const { error } = this.beneficiaryService.bankDetailsSchema(routingConfig.bankDetail).validate(body, { abortEarly: false });
    if (error) {
      throw new BadRequestException(error);
    }

    // write here logic to validate routing codes
    await this.beneficiaryService.validateBeneficiaryBankDetails(routingConfig, body, pick(headers, GET_HEADERS_LIST), beneficiary);
    // write here logic to insert bank details of bene
    return this.beneficiaryService.updateBankDetails(body, headers, beneficiary.beneficiaryId);
  }
Nest允许我们提取请求的参数、头、正文等

我想从我的参数中提取一个特定的密钥

例如,我的参数包含: 1.客户ID 2.客户ID 3.受益人


我可以取出受益人ID并将其存储在受益人灰烬中,但我不能同时执行验证。有什么解决方法吗?

您可以通过自定义管道访问它。例如,ParseIntPipe

从'@nestjs/common'导入{PipeTransform,可注入,ArgumentMetadata,BadRequestException};
@可注射()
导出类ParseIntPipe实现PipeTransform{
转换(值:字符串,元数据:ArgumentMetadata):编号{
const val=parseInt(值,10);
if(伊斯南(瓦尔)){
抛出新的BadRequestException(“验证失败”);
}
返回val;
}
}
@Get(':id')
异步findOne(@Param('id',new ParseIntPipe())id){
返回此.catsService.findOne(id);
}
欲了解更多信息,请阅读