nodejs mongodb multer多个文件上传

时间:2019-11-24 11:21:14

标签: node.js mongodb multer

我正在尝试使用multer上传多个文件,该文件将文件路径以及其他字段保存到mongodb。我使用单个文件上传,但是使用多个文件却没有成功。当我console.log请求时,我可以看到文件路径。没有路径存储在数据库中,这告诉我这与异步/等待有关。我对异步/等待不太满意,需要一些帮助。我遍历了多个站点,还有一些类似问题但没有成功的stackoverflow帖子。任何建议都将不胜感激。

这是上传路线

    app.post('/admin/addDocument', helper.ensureAuthenticated, (req, res) => {
    upload(req, res, (err) => {
        if(err){
            console.log(err);
            req.flash('danger', 'File upload failed!');
            return;
        } else {
            new Document({
                document_type: req.body.document_type,
                title: req.body.title,
                author: req.body.author.split(","),
                created_at: req.body.created_at,
                description: req.body.description,
                tag: req.body.tag,
                path: req.files.path,
                status: req.body.status
            }).save((err, doc) => {
                console.log(req);
                if(err){
                    req.flash('danger', 'Data save failed!');
                    return;
                } else {
                    req.flash('success', 'Document added');
                    res.redirect('/admin');
                }
            });
        }
    });
});

multer函数

 const upload = multer({
    storage: storage,
    limits: {fileSize: 20000000},
    fileFilter: (req, file, cb) => {
        let ext = path.extname(file.originalname);
        if(ext !== '.png' || ext !== '.jpg' || ext !== '.jpeg' || ext !== '.pdf'){
            req.flash('danger', 'File type not allowed!');
        }
        cb(null, true)
    }
}).array('fileupload', 2);
模型文件中的

路径。我确实尝试使用path作为数组类型,但仍然没有骰子。

path:{
        type: String,
        required: false
    },

0 个答案:

没有答案