如何在NestJS中验证路径变量,例如:
update(@Param('id') id: number, @Body() updateSite: UpdateSiteDto) { // ...body }
我只是想验证id是否为正数(> 0),而不需要 Package 类。
id
gjmwrych1#
这是一个有用的问题。我使用自定义管道来验证id参数步骤1:创建pipe.ts文件:
pipe.ts
import { PipeTransform, Injectable, BadRequestException } from '@nestjs/common'; @Injectable() export class PositiveNumberValidationPipe implements PipeTransform { async transform(value: number) { if (value <= 0) { throw new BadRequestException('id is positive number'); } return value; } }
步骤2:通过导入文件pipe.ts在Controller文件中使用它
@Post('/users/:id') update( @Param('id', PositiveNumberValidationPipe) id: number, @Body() updateSite: UpdateSiteDto, ) { // ...body }
如果您发送非正数,则会收到以下结果:
{ "statusCode": 400, "message": "id is positive number", "error": "Bad Request" }
对我来说效果很好!
x7yiwoj42#
你可以在下面的正文中检查id
update(@Param('id') id: number, @Body() updateSite: UpdateSiteDto) { if (id < 1) { throw new BadRequestException('ID_MUST_BE_POSITIVE'); } // ...body }
2条答案
按热度按时间gjmwrych1#
这是一个有用的问题。
我使用自定义管道来验证
id
参数步骤1:创建
pipe.ts
文件:步骤2:通过导入文件
pipe.ts
在Controller文件中使用它如果您发送非正数,则会收到以下结果:
对我来说效果很好!
x7yiwoj42#
你可以在下面的正文中检查id