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