Estoy tratando de implementar la función multer fileFilter y funciona (filtra archivos y los archivos se cargan) pero cuando configuro el filtro de archivos req.files se vacía.
const extFilter = function (req, file, cb) { if(file.originalname.match(/^.*\.(avi|mov|mp4)$/)) cb(null, true) cb(null, false) } const upload = multer({ storage: cloudStorage, fileFilter: extFilter }).array('file') upload(req, res, function (err) { return res.status(200).send(req.files) //returns nothing })Sin la opción fileFilter configurada, la función devuelve una matriz de archivos cargados.
¿Algunas ideas?
A la función fileFilter le faltaba el retorno antes de cb(null, true)
const extFilter = function (req, file, cb) { if(file.originalname.match(/^.*\.(avi|mov|mp4)$/)) return cb(null, true) cb(null, false) } De lo contrario, los archivos se escriben en el disco debido a la primera devolución de llamada, pero luego no se devuelve nada en req.files debido a la segunda cb(null, false) .