CNode

小菜求问:Cannot read property '_id' of undefined

问答
Jjioyou发布于10 年前最后回复10 年前9 回复11475 浏览0 收藏

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

查看回复

回复 (9)

J
jioyou#1·10 年前

20160331180211.png 页面是这样的

S
SinalVee#2·10 年前

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

A
ayiis#3·10 年前

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

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

M
magicdawn#4·10 年前

改成这样

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

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

M
magicdawn#5·10 年前

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

J
jioyou#7·10 年前
M
magicdawn#8·10 年前
J
jioyou#9·10 年前
引用 ayiis问题应该出在你前端POST数据的代码块 打开F12检查POST数据是否有异常 如果使用了$.post,试试先将对象JSON.stringify再POST 另外注意Content Type,它会...

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

参与回复
登录后即可参与回复。登录