更改 NestJS 中的意外字段错误消息

问题描述 投票:0回答:1

我有这个代码

@Post('files')
@UseInterceptors(FilesInterceptor("files", 5))
async uploadFiles () {
...
}

当我尝试上传更多文件时,收到此错误“意外字段”,有什么方法可以将此错误更改为自定义错误吗?

nestjs multer
1个回答
0
投票

您可以使用 NestJS 中的异常过滤器,如 NestJS 文档中所述:异常过滤器 NestJS 文档

创建像这样的文件 http-exception.filter.ts

import { ExceptionFilter, Catch, ArgumentsHost, HttpException } from '@nestjs/common';
import { Request, Response } from 'express';

@Catch(HttpException)
export class HttpExceptionFilter implements ExceptionFilter {
  catch(exception: HttpException, host: ArgumentsHost) {
    const ctx = host.switchToHttp();
    const response = ctx.getResponse<Response>();
    const request = ctx.getRequest<Request>();
    const status = exception.getStatus();

    response
      .status(status)
      .json({
        statusCode: status,
        timestamp: new Date().toISOString(),
        path: request.url,
      });
  }
} 

并在控制器中像这样使用它

 @UseFilters(new HttpExceptionFilter())
 @UseInterceptors(FilesInterceptor('files', 5)

然后您可以自定义过滤器的逻辑来添加您的消息。

© www.soinside.com 2019 - 2024. All rights reserved.