req.body дает мне неопределенный - PullRequest
0 голосов
/ 05 сентября 2018

Я создал контроллер, который имеет следующий код:

app.post('/users', (req, res) => {
        console.log(req.body);
        const user = new User({
            name: req.body.name,
            email: req.body.email
        });

        user.save((err, user) => {
            if (err)
                console.error(err);

            res.send(user);
        });
    })

Я использую Почтальон для отправки новой записи через /users конечную точку, но каждый раз получаю сообщение об ошибке: TypeError: Cannot read property 'name' of undefined. Тело отправлено:

{
    "name": "Name",
    "email": "example@gmail.com"
}

Пытаясь отладить его, я напечатал значение req.body в консоли, как вы на самом деле видите в коде. Это дает мне undefined. Я хочу упомянуть, что они включены в app.js, сгенерированный Express CLI:

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

В чем может быть проблема и как я могу ее решить?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Исходя из того, что req.body равно undefined, и у вас правильный тип содержимого, я бы посоветовал посмотреть порядок вашего промежуточного ПО по сравнению с маршрутами. Промежуточное программное обеспечение должно предшествовать любым маршрутам, которые зависят от него.

https://expressjs.com/en/api.html#express.json

0 голосов
/ 05 сентября 2018

Вы добавили парсер тела в экспресс-приложение? Попробуйте использовать модуль парсера тела, если не

const bodyParser = require('body-parser');

const app = express();
app.use(bodyParser.json());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...