Форма отправки достигает моего маршрутизатора, но без данных.
Решено: заменить express.json()
промежуточное ПО на express.urlencoded()
. Смотрите мой ответ на вопрос «почему».
(Метафора: форма представляет собой автобус, и нажатие кнопки отправки собирает пассажиров на автобусной остановке, а затем отправляется на сервер. Этот автобус закрывает дверь на лице этого потенциального пассажира. Пассажир бежит за ним, прося автобус останавливается, но автобус продолжается и приходит на сервер пустым. Мне нужна помощь, чтобы заменить этого некомпетентного водителя автобуса.
)
Я использую Express v4.17.00 и body-parser v1.19.00 (я знаю, что это необязательно).
Попытки исправить HTML:
- [x] Входы названы
- [x] Значения существуют
- [x] Переключение с `type =" hidden "на type =" text "и обратно
- [x] Переключение между кнопкой [type = "submit"] и вводом [type = "submit"]
- [x] Удаление data-fhqwhgads13 (значение Vue) из ввода
- [x] Передача более базового значения в значение
- [x] Использовать пример формы Mozilla вместо моей собственной формы (почему я подозреваю, что я запутался в Express)
Попытки срочного исправления:
- [x] Переключение между bodyParser.json () и express.json ()
- [x] Использовать bodyParser.text (), .raw ()
- [x] Напечатайте весь запрос, чтобы увидеть, находится ли тело где-то еще.
С вышеуказанными исправлениями console.log(req.body)
всегда показывает {}
. Я использую пример MDN в своем MRE, поэтому я думаю, что что-то упустил в Express.
Вот мой репозиторий MRE
Я ожидаю, что данные войдут в мой пост-маршрут / расписание магазина, будут иметь данные как часть объекта req, и я смогу использовать его.
Однако console.log(req.body)
дает мне {} независимо от того, какая форма ввода используется. Нет сообщений об ошибках.