我來總結一下我跟著學習時遇到的問題及解決:
1. bodyParser
? 新版本已經沒有bodyParser了,很多人留言也提到這個問題。解決的方法是npm install body-parser(注意名字和之前的不一樣哦),然后代碼中調用也要改變一下,我的如下:
var?bodyParser?=?require('body-parser') app.use(bodyParser.urlencoded())
2. 『Cannot read property 'movie' of undefined』
? 這個問題在解決上一個問題1以后就隨之而來,也是困惑了我很長時間。試了各種Google出來的方法,都沒用。后來無意中試著改變了(req,res)的位置,居然解決了。具體如下:
? 這是跟著作者的視頻寫的原來的代碼:
app.post('/admin/movie/new',?function(res,?req){ var?id?=?req.body.movie._id var?movieObj?=?req.body.movie var?_movie
? 我改了(req,res)的位置后:
app.post('/admin/movie/new',?function(req,?res){ var?id?=?req.body.movie._id var?movieObj?=?req.body.movie var?_movie
?問題就解決了!暈,視頻里作者還都說『粗心害死人啊!』
現在又遇到了新的問題,不知道作者能不能看到我的留言給我解答一下。問題就是,例如我提交了一個影片『movie1』,再修改它,不改title(仍然是movie1),改了其它任意字段。點擊提交后,在列表頁看到了兩條記錄,名稱都是movie1. 而我的理解title是一樣的,為什么會變成兩條記錄。那個『if (id !== 'undefined')』是什么意思呢?
2018-04-10
我的怎么識別不了name="movie[_id]"這個寫法啊,然后錄入的時候直接報
,
2016-05-10
建站一期參考代碼:留下github地址?http://www.xianlaiwan.cn/view/656
2016-02-19
找 can't read movie的錯好久了!??!
2015-12-28
大家沒有遇到一點擊“錄入”,就報錯“cannout read property save of undefined”?
2015-07-24
解決了錄入電影出現的問題,low_00的問題我也出現了,ths
2015-01-14
關于bodyParser的設置
調用時需要傳入如上參數:extended:true,默認為false,否則在下面的創建Movie中:
你仍然是得不到對象和相關的屬性的。
2014-10-10
這貼子真好,頂!
2014-10-01
再次解釋下上面的回答,其中的 后面應該會被拿掉了,是指在二期課程中會被拿掉,不用這樣的方式。
一期中代碼應該是這樣:
那么這段代碼做了兩件事:
1. 新生成一個 new movie 實體
2. 更新一個已存在的 new movie 實體
至于是新生成,還是更新,則由?req.body.movie._id 是否存在來判斷,如果從后臺提交的請求中沒有 _id, 也就是?
views 的 admin 中,這個 隱藏域 并沒有被賦值,那么?req.body.movie._id 拿到的就是一個 undefined, 通過它存在與否進入到不同的處理邏輯中。
2014-10-01
Title 并不是 unique 的,所以,在后臺編輯頁面多次提交會形成多條數據,而每條數據的 _id 是 unique 的,因此后臺還有一個 edit 功能是針對每一條數據進行更新,這個更新不會重復生成數據。
if (id !== 'undefined') 在后面應該會被拿掉了,這里是判斷這條數據是否還存在。
最后,由于自己的粗心,給大家帶來的不便,向大家致歉。