小菜求问:Cannot read property '_id' of undefined
发布于 9 年前 作者 jioyou 11327 次预览 最后一次回复是 9 年前 来自 问答
小菜求问,照着教程写的demo。
这里_id报了个错,找不到movie对象。
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
这两句也有,请问应该怎么改这里???
9 回复
小菜求问,照着教程写的demo。
这里_id报了个错,找不到movie对象。
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
这两句也有,请问应该怎么改这里???
第二个图
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缺了什么 拜托您帮看一下应该怎么改 不好意思,我实在是菜鸟,大神再点拨一下
改成这样
see https://github.com/expressjs/body-parser#extended
其实你不设置 extended, 它默认是就是true, 不过会有一个 deprecated 提示,你的
extended: false哪里抄的啊@magicdawn 你是正解
@magicdawn 帅 我是百度的[捂脸]
@jioyou 。。。