如何在 NestJs 中使用 HTML 渲染验证?

Ste*_*idt 5 javascript node.js typescript nestjs

NestJS 使用验证管道进行验证,并且

@UsePipes(ValidationPipe)
Run Code Online (Sandbox Code Playgroud)

如果失败,则会抛出异常。这对于返回 JSON 的 REST API 来说很好。

使用 HTML 渲染时如何验证参数并返回

{ errors: ['First error'] }
Run Code Online (Sandbox Code Playgroud)

到 hbs 模板?

Kim*_*ern 3

您可以创建一个Interceptor将验证错误转换为错误响应的方法:

@Injectable()
export class ErrorsInterceptor implements NestInterceptor {
  intercept(
    context: ExecutionContext,
    call$: Observable<any>,
  ): Observable<any> {
    return call$.pipe(
        // Here you can map (or rethrow) errors
        catchError(err => ({errors: [err.message]}),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

您可以通过添加@UseInterceptors(ErrorsInterceptor)到控制器或其方法来使用它。