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
}

Ответы (0 шт):