【发布时间】:2017-11-20 13:21:38
【问题描述】:
我正在向我的 mongo 服务器发送一个 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
【问题讨论】:
-
curl -H "Content-Type: application/json" -X POST -d '{ "user": { "username": "testuser", "email": "test@email.com", "pwd": "pass" } }' http://localhost:3000/api/users重新排序参数和设置 Content-Type 怎么样 -
这很有魅力!谢谢!