#node.js #express #middleware #multer #busboy
Вопрос:
я хочу загрузить изображение в nodejs с помощью multer, но у меня есть некоторые проблемы
в моем server.js (главная) у меня есть
const express = require('express'); const app = express(); const expressBusboy = require('express-busboy'); expressBusboy.extend(app,{upload : true , path : 'uploads/'});
и в routes/index.js у меня есть
const multer = require('multer') const upload = multer() router.post('/products',upload.single('photo'),handeler) router.post('/test',handeler)
функция handeler просто регистрирует что-то в консоли теперь у меня 3 проблемы
1: когда я отправляю запрос в /тест, который не включает загрузку.один объект req.body определен и его можно, но когда я отправляю тот же запрос в /продукты, который включает загрузку.один («некоторое имя») req.файлы определены и ок, но req.body является [Объект : нулевой прототип]{} почему это происходит?
2: почему, когда я использую upload.single (), у меня есть req.файлы вместо req.файл и req.files-это объект, в котором есть только один объект
3: Когда я получаю запрос на файл, который я хочу быть загружен будут храниться в новую папку с именем, как его идентификатор UUID вместо непосредственного сохранения в папке данные, которые я уже создал , я попытался добавить allowedPath : /^/загрузки$/ (это я скопировал регулярное выражение может быть неправильно здесь), но он перестал хранение
и IAM, используя почтальон для отправки запроса и IAM, используя данные формы для тела и тексты были добавлены, прежде чем файл, который я проверил и в заголовки запроса типа контента был установлен в multipart/форм-данных
Ответ №1:
Я обнаружил проблему, это произошло потому, что я использовал как помощника официанта, так и мультера вместе, я начал отправлять данные формы(ы) без загрузки файлов, и мне нужен был помощник официанта для анализа тела запросов, и после этого я установил мультер для загрузки своих изображений, и это заставило их перезаписывать друг друга, и возникли проблемы