javascript - Express.js 请求主体 __proto__

标签 javascript node.js mongodb express mongoose

我对 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/

相关文章:

javascript - style 属性覆盖了用 jquery 分配的 css 属性

javascript - 使用选择框对网格 Extjs 进行分组

ajax - 简单的 AJAX 获取请求是 "pending"

mongodb - 基于 GO 的 Mongo 聚合查询问题

javascript - Handsontable:更新单元格元后重新渲染单元格?

Javascript parseFloat 问题

node.js - 如何将图像上传到 KeystoneJS GraphQL 端点?

node.js - memwatch-next 可以在生产应用程序中使用吗?

c# - MongoDb 更改数组元素的顺序

mongodb - 使用 docker 连接 mongodb 和 mongoexpress 时遇到问题?