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。
- Node JS + Express:在主视图中渲染子视图
- 当modelObject从数据库本身获得时,modelObject.save()是否只更新现有的数据库文档?
- ExpressJS:如何使用参数redirectPOST请求
- node.jsexpression式框架是否为每个客户端连接创build一个新的轻量级进程?
- NodeJS Express vhosts和更新app.js
- 表示debugging模块不工作
- 如何在Express.js布局中使用partials?
- 当文件大小超过nodejs中的限制并且expression时,如何响应客户端或浏览器
- 如何在命令行上将分层configuration值传递给nconf?