NodeJS 如果NestJS的主体中没有文件,如何绕过拦截器?

bwleehnv  于 2023-01-30  发布在  Node.js
关注(0)|答案(1)|浏览(140)

我正在建立一个邮件发送队列服务使用SMTP选项有或没有附件。但与NestJS,@UseInterceptors(FileInterceptor('file'))是必需的上传文件,所以选项发送邮件没有文件无法应用。希望找到一个解决这个问题。谢谢这是我的控制器enter image description here这是一个错误从Interceptors enter image description here
我试着找到解决办法,但还是找不到

qxsslcnc

qxsslcnc1#

您可以通过使用客户拦截器来实现它,客户拦截器将在内部使用文件拦截器,如下所示:

import { FileInterceptor } from '@nestjs/platform-express';
import { Observable } from 'rxjs';

@Injectable()
export class CustomFileInterceptor implements NestInterceptor {
  intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
    const request = context.switchToHttp().getRequest();

    if (request.files && request.files.file) {
      return new FileInterceptor('file').intercept(context, next);
    }

    return next.handle();
  }
}

相关问题