Почему moddlewear для Express Multer не сохраняет изображение?

В форме (написана на ReactJS) формирую поля для отправки запроса:
const formData = new FormData();
        formData.append('name', this.state.name);
        formData.append('quantity', this.state.quantity);
        formData.append('code', this.state.code);
        formData.append('images', this.images);

       addSku(formData);


Затем передаю на сервер:
export function addSku(sku) {
    console.log('sku', sku.get('images')); // sku [object File]
    return new Promise((resolve, reject) => {
        fetch('/api/sku', {
            method: 'POST',
            credentials: 'same-origin',
            body: sku
        })
            .then(res => res.json(res))
            .then(json => resolve(json))
            .catch(err => reject(err));
    });
}


На сервере ловлю поле:
const multer = require('multer');
const upload = multer({ dest: 'uploads/' });

app.post('/', upload.single('images'), (req, res) => {
    console.log('req.file', req.file); // undefined
    console.log('req.files', req.files); // undefined
    console.log('req.body', req.body); // { name: '', quantity: '0', code: '', images: '[object File]' }
console.log(req.headers['content-type']); // multipart/form-data; boundary=----WebKitFormBoundaryFwa3zhYAN8cJcU5g
 });


Согласно документации в req должно появиться поле file или files. Их нет. Директория uploads/ создается.
Никаких ошибок нет, но файл в директории не появляется.
  • Вопрос задан
  • 439 просмотров
Пригласить эксперта
Ответы на вопрос 1
@f-end Автор вопроса
Вопрос снят.
Оказалось, что upload.single не берет из массива один первый файл (как я предполагал), а работает в одинм объектом типа File
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы