我正在学习 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;
}
无论请求正文中的用户名是什么,它仍然通过,即使是空字符串 但是当我为用户名字段发布一个普通数字时,服务器响应了一个错误作为匹配装饰器的默认操作
{
"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();
谁能帮我解释一下?感谢您的帮助
答案 0 :(得分:0)
奇怪的是,我通过删除 dist
文件夹解决了这个问题
也许 ts 转译器没有将最新的 ts 代码重新转译为 js 代码。我没有理由