Node.js Multer req.files выводит пустой масссив
Проблема: В README описано, что при отправке файлов, Multer сохраняет его в req.files, но вместо массива данных, получаю пустой массив.
.any() Принимает все переданные файлы. Массив файлов будет сохранен в req.files.
При это всё работает ок, файлы сохраняются.
Когда отправляют 1 файл и использую .single() то тоже всё ок (req.file не пустой).
store
async send({commit}, {name, type, description, files}) {
const formData = new FormData()
formData.append('name', name)
formData.append('type', type)
formData.append('description', description)
if(files){
files.forEach((element, index) => {
formData.append(`files[${index}]`, element.file)
})
}
try {
return await this.$axios.$post('/api/request/create', formData)
} catch (e) {
commit('setError', e, {root: true})
throw e
}
}
routes
const passport = require('passport')
const {Router} = require('express')
const ctr = require('../controllers/request.controller')
const file = require('../middleware/file')
const router = Router()
router.post(
'/create/',
passport.authenticate('jwt', {session: false}),
file.upload.any(),
file.resize,
ctr.create
)
middleware
const path = require('path')
const multer = require('multer')
const moment = require('moment')
const storage = multer.diskStorage({
destination(req, file, next) {
mimeType = ['image/png', 'image/jpeg', 'image/webp']
const result = mimeType.filter(type => type === file.mimetype)
if(result.length) next(null, path.resolve(__dirname, '../..', 'static/images/request'))
else next(null, path.resolve(__dirname, '../..', 'static/documents/request'))
},
filename(req, file, next) {
const fileName = `${moment().format('DDMMYYYY-HHmmss_SSS')}-${file.originalname}`
next(null, fileName)
}
})
const fileFilter = (req, file, next) => {
mimeType = ['image/png', 'image/jpeg', 'image/webp', 'application/pdf', 'application/msword']
mimeType.forEach(type => {
if(type === file.mimetype) next(null, true)
else next(null, false)
})
}
const upload = multer({
storage, fileFilter, limits: {fileSize: 1024 * 1024 * 2}
})
const resize = async (req, res, next) => {
console.log(req.files) // выводит []
next()
}
module.exports = {
upload,
resize
}