我创建了一个具有以下代码的控制器:
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
。
我想提到的是,我确实将这些包含在Express CLI生成的app.js
中:
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
可能是什么问题,我该如何解决?
谢谢。
答案 0 :(得分:-1)
您是否已将主体解析器添加到Express应用程序? 尝试使用正文解析器模块
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
答案 1 :(得分:-2)
基于req.body
是undefined
并且您具有正确的contentType的事实,我建议您查看中间件与路由的顺序。中间件必须先于依赖它的任何路由。