Node.js Express express.json и express.urlencoded с формой отправки
Промежуточное программное обеспечение bodyParser Express (или Connect) помечено как устаревшее, и пользователям рекомендуется использовать вместо него:
app.use(connect.urlencoded())
app.use(connect.json())
Тем не менее, когда я запускаю пример изNode.js в действииЯ использую curl, чтобы заполнить форму, как предложено в книге:
curl -F entry[title]='Ho ho ho' -F entry[body]='santa loves you' http://abc:[email protected]:3000/api/entry
Не работаетreq.body
не определено. Я что-то пропустил? Он отлично работает с bodyParser.
РЕДАКТИРОВАТЬ: РЕШЕНИЕ от Express 4
Разобрать JSON следующим образом:
var bodyParser = require('body-parser');
...
app.use(bodyParser.json());
Разбираем урленкодированное тело так:
app.use(bodyParser.urlencoded({extended: true}));
Тогда нет предупреждения об устаревании. Extended: True (по умолчанию) использует модуль qs, а false использует модуль querystring для анализа тела.
Не использоватьapp.use(bodyParser())
, это использование теперь устарело.