我对 express.urlencoded() 中间件生成的 request.body 有点问题。在某些情况下,它会在 request.body 对象的末尾添加 __proto__
并且它不能像这样直接用于启动 moongose 模型 var user = new User(req.body)
作为示例,我将使用 node-express-mongoose-demo存储库。所有表单都可以正常工作,但 app.post('/users', users.create)
收到 req.body 被 __proto__
在此先感谢您的帮助
最佳答案
看来问题出在 urlencoded
中间件,它包含在 Express 3
中。
一个可能的解决方案是不使用 Express bodyParser,而是使用 body-parser
模块。
代替
app.use(express.urlencoded())
你可以写
var bodyparser = require('body-parser')
..........
app.use(bodyparser.urlencoded())
问题似乎出在qs
模块(express 3
模块使用的版本)。它强制在它构建的对象上添加一个 __proto__
。最新版本没有这个问题。
关于javascript - Express.js 请求主体 __proto__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19776491/