0 email-validation class-validator nestjs
我想做的是当有人尝试使用已在使用的电子邮件进行注册时传播错误。默认情况下,这会返回 500 错误,但我需要它针对此特定场景抛出有意义的错误。注意:程序对于每个错误都会返回 500 错误
是的,可以使用类验证器来验证电子邮件
\n首先,您需要为此验证器创建自定义类,例如这样。
\n@ValidatorConstraint({ name: \'isEmailUserAlreadyExist\', async: true })\n @Injectable()\n export class IsEmailUserAlreadyExistConstraint\n implements ValidatorConstraintInterface\n {\n constructor(protected readonly usersService: UsersService) {}\n \n async validate(text: string) {\n return !(await this.usersService.userExists({\n email: text,\n }));\n }\n }\n \n export function IsEmailUserAlreadyExist(validationOptions?: ValidationOptions) {\n return function (object: any, propertyName: string) {\n registerDecorator({\n target: object.constructor,\n propertyName: propertyName,\n options: validationOptions,\n constraints: [],\n validator: IsEmailUserAlreadyExistConstraint,\n });\n };\n }\nRun Code Online (Sandbox Code Playgroud)\n然后需要将这个类导入到users模块中
\nproviders: [UsersService, IsEmailUserAlreadyExistConstraint]\nRun Code Online (Sandbox Code Playgroud)\n毕竟,您可以在 DTO 中使用此自定义装饰器,您可以在其中传递自定义消息作为错误输出
\n @IsEmailUserAlreadyExist({\n message: \'\xd0\x9f\xd0\xbe\xd0\xbb\xd1\x8c\xd0\xb7\xd0\xbe\xd0\xb2\xd0\xb0\xd1\x82\xd0\xb5\xd0\xbb\xd1\x8c \xd1\x81 \xd1\x82\xd0\xb0\xd0\xba\xd0\xb8\xd0\xbc email \xd1\x83\xd0\xb6\xd0\xb5 \xd1\x81\xd1\x83\xd1\x89\xd0\xb5\xd1\x81\xd1\x82\xd0\xb2\xd1\x83\xd0\xb5\xd1\x82\',\n })\n readonly email: string;\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
7138 次 |
| 最近记录: |