首页 > 解决方案 > req.body 给我 undefined

问题描述

我创建了一个具有以下代码的控制器:

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);
        });
    })

我正在使用 Postman 通过/users端点发布一个新条目,但每次我这样做时都会出错:TypeError: Cannot read property 'name' of undefined. 正文发送:

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

尝试调试它,我在控制台中打印了 req.body 的值,正如您在代码中实际看到的那样。它给了我undefined。我想提一下,我确实将这些包含在app.jsExpress CLI 生成的文件中:

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

可能是什么问题,我该如何解决?

提前致谢。

标签: javascriptnode.jsexpress

解决方案


您是否将正文解析器添加到 express 应用程序中?如果没有,请尝试使用正文解析器模块

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

const app = express();
app.use(bodyParser.json());

推荐阅读