我有以下代码:
const multer = require('multer');
const multerUploadWorker = async(req, res, storage) => {
console.log('worker called');
const upload = multer({ storage: storage }).single('file');
upload(req, res, function (error) {
if (error) {
return Promise.reject();
} else {
console.log('resolve called');
return Promise.resolve();
}
});
};
module.exports = multerUploadWorker;
和:
const { success, fail } = require('../utils/response-util');
const multer = require('multer');
const multerUploadWorker = require('../workers/multer-upload-worker');
const path = require('path');
const upload = async(req, res) => {
const storage = multer.diskStorage({
destination: function (_, _, cb) {
cb(null, 'uploads/')
},
filename: function (_, file, cb) {
const ext = path.extname(file.originalname);
switch (ext) {
case '.jpg':
case '.JPG':
case '.jpeg':
case 'JPEG':
case '.png':
case '.PNG':
case '.gif':
case '.GIF':
cb(null, Date.now() + ext);
break;
default:
cb('File type error', false);
break;
}
}
});
try {
if (await multerUploadWorker(req, res, storage)) {
return success(res, { message: req.file });
}
} catch(error) {
return fail(
res, 'Something went wrong, please check the image type is \
JPEG, GIF or PNG', '500'
);
}
};
module.exports = {
upload
};
似乎虽然控制台resolve called在multerUploadWorker其中记录并不会触发if (await multerUploadWorker(req, res, storage))条件。没有错误被抛出,只是没有任何反应。我在这里做错了什么?
慕沐林林
相关分类