gpt4 book ai didi

typescript - 类验证器的匹配装饰器无法正常工作

转载 作者:行者123 更新时间:2023-12-05 06:48:01 24 4
gpt4 key购买 nike

我正在学习 nestjs 作为我的工作要求

这是我的正则表达式:/(?=[^\d].*)^[\w]{4,}$/ 这意味着第一个字符不能是数字,在整个字符串至少 4 个字符

这里是 DTO:

import { IsString, IsPhoneNumber, Matches } from 'class-validator';
export class CreateUserDto {
@Matches(/(?=[^\d].*)^[\w]{4,}$/, {
message:
'the first character of the username must not be a number. Username must contains at least 4 characters',
})
username: string;

@IsString()
password: string;

@IsPhoneNumber('VN')
phoneNumber: string;
}

无论请求体中的用户名是什么,它仍然通过,即使是一个空字符串但是当我为用户名字段发布一个普通数字时,服务器响应了一个错误作为 Matches 装饰器的默认操作

{
"statusCode": 400,
"message": [
"username must be a string"
],
"error": "Bad Request"
}

我还在 main.ts 中启用了验证

async function bootstrap() {
const app = await NestFactory.create(AppModule);
app.enableCors();
app.useGlobalPipes(new ValidationPipe());
await app.listen(9000);
}
bootstrap();

谁能帮我解释一下?谢谢你的帮助

最佳答案

奇怪的是,我通过删除 dist 文件夹解决了这个问题

可能ts转译器没有将最新的ts代码重新转译成js代码。我没有理由

关于typescript - 类验证器的匹配装饰器无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66939454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com