Я хочу получить доступ к req.body из нескольких промежуточных программ на моих маршрутах.
Но, похоже, я не могу найти способ получения анализируемых данных тела из моих пользовательских средних изделий.
Например:
let mymiddleware = (req, res, next) => {
console.log(req.body); //<- undefined
next();
}
router.post('/', mymiddleware,
multer({fileFilter: filefilter,storage:storage}).any(),//<-this file uploader middleware retrieves req.body without problem.
function (req, res) {
console.log(req.body); //<- parsed body showing here.
});
Я что-то упустил?
Почему req.body не анализирует, когда используется несколько промежуточных программ?
(Да, я считаю, что правильно настроил свой анализатор тела, поскольку он работает в обработчиках)
(РЕДАКТИРОВАТЬ: более подробно об этой проблеме)
Вот мои настройки парсера тела в app.js перед любыми маршрутизаторами app.use:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
function ensureAuthenticated(req, res, next) {
if (req.isAuthenticated()) {
return next();
}
else res.redirect('/');
}
app.use('/console/create_album', ensureAuthenticated, create_album);
и моя форма на переднем конце:
<form enctype="multipart/form-data" action='/console/create_album' method='post'>
<!---Just some text inputs, and textarea, file inputs are here -->
</form>
Файлы и данные, анализируемые телом, успешно извлекаются без проблем, если я не использую промежуточное ПО mymiddleware на router.post.