bogdan_uman
@bogdan_uman
шлЫмазл неукЪ-поцЪ

Middleware перед Multer?

Здравствуйте. Подскажите пожалуйста. Как правильно сделать, можно ли как-то в middlware перед multer, получить параметры, что бы их провалидировать (или создать в базе запись id которой будет именем файла в multer)?

app.use(express.urlencoded({ extended: true }));

routes.post(
  '',
  async (req, res, next) => next(req.body.some_params ? null : new Error('MISSING_PARAMS')),
  multer({ dest: './uploads' }).single('file'),
  (req, res) => res.json({ status: true })
);


Спасибо.
  • Вопрос задан
  • 97 просмотров
Пригласить эксперта
Ответы на вопрос 1
Lynn
@Lynn
nginx, js, css
Никак. Что бы появился req.body нужно разобрать тело запроса. Именно это и делает multer.
Как написано в документации к body-parser:
This does not handle multipart bodies, due to their complex and typically large nature […]


Просто посмотрите в том же developer tools Хрома как выгдлядит форма отправляемая в фомате multipart/form-data и возможно поймёте почему её сложно парсить. И, вообще говоря, порядок полей может быть такой, что сначала будет идти файл, а потом нужный вам id.

В общем, как я уже говорил, нужно просто сохранять файл во временное хранилище, а потом перекладывать куда надо.
Ответ написан
Ваш ответ на вопрос

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

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