Node - multer - 文件上传问题

Node - multer - Problems with file uploading

我正在尝试使用 multer 上传文件。上传正确,但问题是我只想上传 .avi 文件,任何文件都被接受和上传。 我已经使用 fileFilter 设置了 multer 配置,但它似乎不起作用或被忽略了。

这是我的代码:

const mongoose = require('mongoose');
const multer = require('multer');
const uuidV4 = require('uuid/v4');
const Video = require('../models/videoModel');



var storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, './uploads')
    },


    filename: function (req, file, cb) {
        const newName = uuidV4(); 
        const extension = file.mimetype.split('/')[1];
        cb(null, newName +`.${extension}`)

  },

    fileFilter: function(req, file, cb){

        if(file.mimetype !== 'video/avi'){
          return cb(null, false, new Error('goes wrong on the mimetype'));
        }
        cb(null, true);
    }
})

var upload = multer({ storage: storage });
exports.uploadVideo = upload.single('video');

exports.CreateVideo =  async (req, res, next) => {
    const filePath = req.file.filename;
    const video =  await Video.create({title:req.body.title, path: filePath});
    console.log(video);
};

exports.Home = (req, res) =>{
    res.render('index');
};

fileFilter 不是存储 属性,而是多个存储。

function fileFilter(req, file, cb) {

    console.log('file filter called')

    if (file.mimetype !== 'video/avi') {
        return cb(null, false, new Error('goes wrong on the mimetype'));
    }
    cb(null, true);
}

var upload = multer({ storage: storage, fileFilter: fileFilter });

希望对您有所帮助。