- 使用multer上傳文件時(shí),入股想同時(shí)傳點(diǎn)參數(shù)進(jìn)去,需要注意參數(shù)添加的順序,否則multer可能接收不到:
const multer = require('multer');
const path = require('path');
const config = require('../../config/config');
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, config.UPLOAD_PATH);
},
filename: function (req, file, cb) {
//make random filename with tag appendix
const fileName = `${new Date().getTime()}_${req.body.tag || 'notag'}${path.extname(file.originalname)}`;
//return filename
cb(null, fileName);
}
});
const upload = multer({ storage: storage });
module.exports = upload.single('file');
以上代碼中,保存文件名中加入了tag這個(gè)自定義字段,以區(qū)分不同的文件類型。通過前臺(tái)傳入。操作中發(fā)現(xiàn)無法獲取,原因是前臺(tái)傳入順序一定要把file字段放在最后:

image.png
如果把4放在最前面。后面的參數(shù)都接收不到
- mongoose的callback接收參數(shù)問題:
由于node的回調(diào)函數(shù)第一個(gè)參數(shù)始終是error,所以一定要注意傳兩個(gè)參數(shù)進(jìn)去,否則拿不到值:
Model.findByIdAndRemove(req.params.id, (err,target) => {
//...
}
上面如果只傳入target,則拿不到值