POST请求types错误 – 无法读取未定义的属性

我正在向我的mongo服务器发送一个curl请求,并且请求总是说“不能读取属性”的用户名'undefined“。 我最好的猜测是我的curl请求格式不正确,这将解释未定义的请求,但它看起来很好。 任何人都可以看到这里的问题是什么?

curl请求:

curl "http://localhost:3000/api/users" \ --include \ --request POST \ --data '{ "user": { "username": "testuser", "email": "test@email.com", "pwd": "pass" } }' 

用户路由:

 const router = require('express').Router() const bcrypt = require('bcryptjs') const User = require('../models/user') router.post('/', (req, res) => { const user = new User({ username: req.body.user.username, email: req.body.user.email, passhash: bcrypt.hashSync(req.body.user.pwd, 10) }) user.save().then( (newuser) => { res.json({ user: newuser, message: 'success' })enter code here }, (err) => { res.send(500, 'Error is: ' + err.message) } ) }) module.exports = router 

任何帮助将不胜感激。 在过去的两个小时里,我一直在撞墙,试图弄清楚这一点。

另外这里是我的server.js文件:

 const express = require('express') const app = express() const bodyParser = require('body-parser') app.use(bodyParser.json()) app.use('/test', function(req, res) { res.send('hello world') }) app.use('/api/users', require('./routes/users')) app.listen(3000, function() { console.log('app is listening on port 3000...') }) 

我只是想发布这个来说明我正在使用bodyParser

您在请求中缺lessContent-Type标头。 没有它,服务器不知道如何解释请求体。 具体来说,在这种情况下, Content-Type应该是application / json。