小菜求问:Cannot read property '_id' of undefined
发布于 9 年前 作者 jioyou 10973 次浏览 最后一次编辑是 8 年前 来自 问答

20160331174927.png 小菜求问,照着教程写的demo。 这里_id报了个错,找不到movie对象。 app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); 这两句也有,请问应该怎么改这里???

9 回复

20160331180211.png 页面是这样的

第二个图input(type='hidden', balabala)这个movie[_id]对应的input是隐藏的,后面valut='#{movie._id}'没有值的话就是undefined

问题应该出在你前端POST数据的代码块 打开F12检查POST数据是否有异常 如果使用了$.post,试试先将对象JSON.stringify再POST

另外注意Content-Type,它会影响bodyParser的返回结果

@ayiis 哥,感觉您应该说道点上了,可是小弟初学,道行太浅,有点不明白 var admin = require(’./routes/admin’); app.use(’/admin/movie/new’, admin); 您看我app.js里是这样写的用的是express自己生成的那个demo的路由模式 然后在./routes/admin.js里写的一个get,一个post,请问您说的这两个方法我应该加在哪, 还有您说的数据异常,您看我第一张图左下角的那个黄匡里log出来的数据, 按照常理来说应该是识别不出一个movie对象的,所以也觉得可能是bodyParser缺了什么 拜托您帮看一下应该怎么改 不好意思,我实在是菜鸟,大神再点拨一下

改成这样

app.use(bodyParser.urlencoded({ extended: true }));

see https://github.com/expressjs/body-parser#extended

其实你不设置 extended, 它默认是就是true, 不过会有一个 deprecated 提示,你的 extended: false 哪里抄的啊

@magicdawn 帅 我是百度的[捂脸]

回到顶部