美文网首页
mongoose及multer使用的一些小坑

mongoose及multer使用的一些小坑

作者: Angeladaddy | 来源:发表于2018-02-27 09:30 被阅读85次
    1. 使用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字段放在最后:

    image.png

    如果把4放在最前面。后面的参数都接收不到

    1. mongoose的callback接收参数问题:
      由于node的回调函数第一个参数始终是error,所以一定要注意传两个参数进去,否则拿不到值:
    Model.findByIdAndRemove(req.params.id, (err,target) => {
    //...
    }
    

    上面如果只传入target,则拿不到值

    相关文章

      网友评论

          本文标题:mongoose及multer使用的一些小坑

          本文链接:https://www.haomeiwen.com/subject/ijlpxftx.html