req.body пуст для textarea в форме http (с использованием Express)

У меня есть следующая форма, чтобы пользователь загрузил файл и отправил текст:

form(action='/createpost' enctype="multipart/form-data" method='post' id="imgForm")
    input(type='file' name='imgPath' size = "60")
    br
    textarea(name="postText" form="imgForm") Enter your post text here...
    br
    input(type='submit' value="Submit")

Когда я запускаю это:

router.post('/createpost', function(req,res){
  console.log("POST FORM BODY", req.body.postText);
  res.end();
});

я получил undefined в консоли. Как я могу получить значение ввода внутри textarea?

2 ответа

Решение

Попробуйте удалить enctype="multipart/form-data" часть в форме и посмотреть, если это работает. Я думаю, что серверы интерпретируют данные, отправленные в нескольких частях по-разному.

Я не знаю, понимаю ли я что enctype="multipart/form-data" делает, но я бы использовал его при загрузке файла из формы и модуля узла multiparty

Для тех, кто сталкивается с этим ответом, если у вас есть enctype="multipart/form-data"Вы должны использовать промежуточное программное обеспечение, которое может обрабатывать файлы, а body-parser - нет. Популярным вариантом является multer https://www.npmjs.com/package/multer

Другие вопросы по тегам