我正在嘗試調整我的代碼以上傳檔案,但我沒有得到它,我查看了社區并且我不明白,我對此還是新手。它總是落在錯誤json回傳上,你知道它可能是什么嗎?有邏輯的檔案
async img(request, response){
multer({
storage: multer.diskStorage({
destination: (req, file, cb) => {
cb(null, "./Uploads")
},
filename: (req, file, cb) => {
cb(null, Date.now().toString() '-' file.originalname)
},
fileFilter: (req, file, cb) => {
const extensionImg = ['image/png', 'image/jpg', 'image/jpeg'].find
(formatPermitted => formatPermitted == file.mimetype)
if(extensionImg){
return cb(null, true)
}
return cb(null, false)
}
})
}).single('image')
if(request.file){
return response.status(200).json({erro: false, message: "ok"});
}else{
return response.status(400).json({erro: true, message: "error"});
}
}
路徑所在的檔案
const IncidentsController = require('./controllers/IncidentsController');
const routes = express.Router();
routes.post('/uploads', IncidentsController.img)
uj5u.com熱心網友回復:
multer(...).single(...)回傳一個中間件函式。它回傳的中間件函式必須被實際呼叫才能做某事。
通常,您會在請求處理程式之外定義中間件,然后將其用作一個或多個請求處理程式的中間件。
const imgMulterMiddleware = multer({
storage: multer.diskStorage({
destination: (req, file, cb) => {
cb(null, "./Uploads")
},
filename: (req, file, cb) => {
cb(null, Date.now().toString() '-' file.originalname)
},
fileFilter: (req, file, cb) => {
const extensionImg = ['image/png', 'image/jpg', 'image/jpeg'].find
(formatPermitted => formatPermitted == file.mimetype)
if(extensionImg){
return cb(null, true)
}
return cb(null, false)
}
})
}).single('image');
然后,根據需要使用該中間件:
routes.post('/uploads', imgMulterMiddleware, (req, res) => {
// do something with req.file here which will be set
// by the middleware if it was successful
if (req.file) {
res.json({erro: false, message: "ok"});
} else {
res.status(400).json({erro: true, message: "error"});
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/485597.html
標籤:javascript 节点.js 上传 穆尔特
上一篇:如何只用一個引數處理這種型別?
