Юзайю экспресс и хочу использовать разные парсеры в зависимости от MIME-типа. Но не понимаю, как мне применить этот парсер внутри middleware. Пробую с case:multipart и ожидаю, что в
текущий экземпляр экспресса добавится новый роут и применится после выхода из middleware по методу next(). Почему Экспресс не применяет новый обработчик?
import express from 'express';
import multer from 'multer';
const formParser = multer();
const jsonParser = express.json();
export default class {
get handler() {
return (req, res, next) => {
console.log('Боди-парсер');
switch (req.is(['urlencoded', 'json', 'multipart'])) {
case 'urlencoded':
// parse urlencoded body
throw new Error('implement urlencoded body parsing')
case 'json':
// parse json body
throw new Error('implement json body parsing')
case 'multipart':
// parse multipart body
//throw new Error('implement multipart body parsing')
req.app.post('*', formParser.none());
next();
break;
default:
// 415 error code
res.statusCode = 415
res.end()
break
}
}
}
}