У меня проблема с bodyparser, которую я не могу понять.Экспресс bodyParser не работает должным образом
Несколько недель назад я создал REST API с Express и использовал bodyParser для чтения данных JSON от клиента. Все работало хорошо, но сегодня утром я попытался запустить свое приложение, и все мои req.body.data не определены, на самом деле тело равно {}.
Вот моя конфигурация:
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
А затем настроить свои маршруты. Я видел, что вы должны объявить, что в этом порядке, т.е. bodyParser перед вашим маршрутом, и это то, что я делаю. Я думал, что это проблема с версией, но после нескольких обновлений проблема все еще присутствует.
Я использую HttpRequester для имитации клиента. Все прошло отлично до сегодняшнего утра.
Пример данных, отправленный:
{
"username": "david",
"password": "bowie",
"email": "[email protected]"
}
Тогда этот код для ответа:
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(logger('dev'));
app.use(expressValidator());
app.use(cookieParser());
app.use('/users', users);
тогда у пользователей я просто создать пользователь:
// Creation of a user.
router.post('/create', function(req, res) {
// We check current mistakes like username or password empty.
if (!userhelper.checkCreateUserRequest(req, res)) {
return;
}
// Save the user in BDD
}
В checkCreateUserRequest Я делаю это:
if (req.body.username == null || req.body.password == null || req.body.email == null) {
res.status(400).json({message: "malformed request", code: 1});
return false;
}
я делать другие вещи, как проверка, если имя пользователя пуст, например, но я не думаю, что это важно, чтобы вставить его.
Спасибо за ваши ответы и извините за мой плохой английский ...
Могли бы вы добавить фрагмент кода с примером данных, которые вы отправляете, пожалуйста? –
Спасибо за ваш ответ, я обновил сообщение – xavatic