你好,我正在使用Node和Multer创建文件上传功能,它可以正常工作,但问题在于如果出现错误(比如用户没有填写其他字段),它仍然会上传文件,而我不希望这样做
我真的不知道该怎么办,因为这是我第一次尝试,希望有经验的人可以帮忙。以下是我的代码:
const storage = multer.diskStorage({
destination: (req, file, callback) => {
const userPath = path.join(imgStoragePath, req.userId);
fs.mkdir(
userPath,
() => callback(null, userPath)
)
},
filename: (req, file, callback) => {
const filenameParts = file.originalname.split('.');
const ext = filenameParts.pop();
const basename = filenameParts.join('.');
const additionalPath = Date.now() + '' + uuid() + '' +
Math.floor(Math.random() * (2000 - 500)) + 500;
callback(null, basename + '-' + additionalPath + '.' + ext);
}
})
const upload = multer({
storage,
limits: '1mb'
})
router.post('/', upload.single('image'), async (req, res) => {
//code
})
如果出现错误,应该返回错误信息并将其发送到服务器,并停止代码执行而不进行任何操作,它确实能够做到这一点,但还会上传文件。我知道这将发生,因为
upload
是中间件,中间件首先执行,我希望它可以防止这种情况发生。谢谢!