- 使用multer上传文件时,入股想同时传点参数进去,需要注意参数添加的顺序,否则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
这个自定义字段,以区分不同的文件类型。通过前台传入。操作中发现无法获取,原因是前台传入顺序一定要把file字段放在最后:
如果把4放在最前面。后面的参数都接收不到
- mongoose的callback接收参数问题:
由于node的回调函数第一个参数始终是error,所以一定要注意传两个参数进去,否则拿不到值:
Model.findByIdAndRemove(req.params.id, (err,target) => {
//...
}
上面如果只传入target,则拿不到值