小编Ant*_*bun的帖子

为什么白名单不会因为错误的 NestJs 模型而出错

我想在路线的正文验证中使用白名单。我希望只接受与我的模型相符的数据,如果发送的某些参数不属于我的模型 DTO,则必须抛出错误。

这是我的 DTO :

export class RegisterDTO {
    @MinLength(5)
    userName: string;

    @MinLength(8)
    password: string;

    @IsNotEmpty()
    seller: boolean;

    address: {
        city: string;
        street: string;
        apartment?: string;
    };
}
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

@Post('register')
@UsePipes(new ValidationPipe({ transform: true, whitelist: true}))
async register(@Body() userDTO: RegisterDTO) {
    const user = await this.userService.create(userDTO);
    const payload: Payload = {
        userName: user.userName,
        seller: user.seller,
    };

    const token = await this.authService.signPayload(payload);
    return {user, token};
}
Run Code Online (Sandbox Code Playgroud)

但是当我发送这些数据时,我没有收到错误:

{
   "userName": "userdasdnasdasdadad",
   "password": "passwdasdasdasadasdasda",
   "address": {
      "city": "kiev",
      "street": "amosova"
   },
   "seller": false, …
Run Code Online (Sandbox Code Playgroud)

javascript node.js typescript angular nestjs

7
推荐指数
1
解决办法
8541
查看次数

标签 统计

angular ×1

javascript ×1

nestjs ×1

node.js ×1

typescript ×1