1 回答

TA貢獻2016條經(jīng)驗 獲得超9個贊
您對 Promises 的使用不正確。multerUploadWorker應該返回承諾,但在你的情況下它什么也不返回。
const multer = require('multer');
const multerUploadWorker = async(req, res, storage) => {
console.log('worker called');
const upload = multer({ storage: storage }).single('file');
return new Promise((resolve, reject) => {
upload(req, res, function (error) {
if (error) {
reject(error)
} else {
console.log('resolve called');
resolve();
}
});
});
};
module.exports = multerUploadWorker;
同樣是您處理結果的方式,無需檢查結果,因為您沒有返回布爾值,只需等待上傳完成并在catch語句中處理錯誤的情況下:
try {
await multerUploadWorker(req, res, storage))
return success(res, { message: req.file });
}
添加回答
舉報