NestJs使用fileFilter上传文件导致无限挂起



我有一个问题,女巫Multer和NestJS上传文件。我尝试检查文件是否已经存在以返回错误。它工作得很好,但如果我试图在那之后重新上传文件,我有无限的未决请求。(如果我删除过滤器,我没有问题,但我覆盖了文件)

我的控制器代码:

@UseGuards(JwtAuthGuard)
@UseGuards(RolesGuard)
@Role('SCENARISTE')
@Post('upload/sound')
@UseInterceptors(FileInterceptor('file', {
storage: diskStorage({
destination: 'files/sounds',
filename: function (req, file, callback) {
return callback(null, file.originalname);
}
}),
fileFilter: (req, file, callback) => {
if (existsSync(join('files/sounds', file.originalname))) {
return callback(new NotAcceptableException(ErrorType.FILE_ALREADY_EXIST), false);
} else {
return callback(null, true);
}
},
}))
uploadSound(@UploadedFile() file: Express.Multer.File) {
const fileReponse = {
originalname: file.originalname,
mimetype: file.mimetype,
filename: file.filename,
size: file.size,
destination: file.destination,
fieldname: file.fieldname,
path: file.path
};
return fileReponse;
}

提前感谢您的帮助

可能是第一个请求没有正确关闭/停止吗?

根据Multer的文档,当你想抛出一个错误时,你必须通过传递带有错误的第一个参数来调用回调,并留下第二个参数或传递false值。

因此,试着这样修改你的代码:
return callback(new NotAcceptableException(ErrorType.FILE_ALREADY_EXIST));

最新更新