如何在nestjs中使用正则表达式进行验证?

Vla*_*lub 3 nestjs

我想在 Nestjs 中使用正则表达式进行验证。

例如:

正则表达式

pagePattern    = '[a-z0-9\-]+';
Run Code Online (Sandbox Code Playgroud)

方法

  @Get('/:article')
  getIndex(
   @Param('article')
  ) {

  }
Run Code Online (Sandbox Code Playgroud)

我可以用什么?验证管道?

Jay*_*iel 10

我会创建一个 DTO 类,例如

class ArticleParamDTO {
  @Matches('[a-z0-9\-]+') // comes from class-validator
  article: string;
}
Run Code Online (Sandbox Code Playgroud)

然后你可以在路由处理程序中使用它,例如

@Get(':article')
getIndex(@Param() { article }: ArticleParamDto) {

}
Run Code Online (Sandbox Code Playgroud)

然后只要你使用它,ValidationPipe一切都会起作用。任何不匹配的内容都会导致 400 BadRequest