Использовать bodyParser.urlencoded(
) middleware:
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
Тогда значения формы будут на req.body:
app.post('/game', function (req, res) {
res.render('the_template', { name: req.body.name });
});
Установка { extended: true }
позволяет bodyParser принимать json какданные в данных формы, включая вложенные объекты.Например, { person: { name: Adam } }
отправлено с использованием JavaScript, а не пар «имя-значение», которые отправляет традиционная форма HTML.Если вам это не нужно, вы можете установить для расширенного значения значение false.Отказ от определения расширенного параметра (т. Е. Использования параметра по умолчанию), по-видимому, является устаревшим, и они, похоже, хотят, чтобы вы решили, нужны ли вам вложенные параметры или пары значений простого имени.
Если вы хотите иметь возможность анализировать данные формыдля некоторых маршрутов и данных json для других на вашем экспресс-сервере вы можете использовать:
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: <true|false> }))
urlencoded()
для типа контента x-www-form-urlencoded
true
- для вложенных структур данных false
- для пар имя-значение
json()
- для типа содержимого application / json
Обратите внимание, что форма / составная частьнужен другой анализатор тела (например, multer)