我一直沒搞明白這段代碼和表單隱藏域的關系,哪位大俠詳細解釋下
app.post('/admin/movie/new',function(req,res){
? var id = req.body.movie._id
? console.log('提交:'+id)
? var movieObj = req.body.movie
? var _movie
? if (id !== 'undefined') {
??? Movie.findById(id,function(err,movie){
????? if (err) {
??????? console.log(err)
????? }
????? _movie = _.extend(movie,movieObj)
????? _movie.save(function(err,movie){
??????? if (err) {
????????? console.log(err)
??????? }
??????? res.redirect('/movie/'+movie._id)
????? })
??? })
? }
和
? ?form.form-horizontal(method="post",action="/admin/movie/new")
???????????? input(type="hidden",name="movie[_id]",value="#{movie._id}")
2016-07-27
提交表單后,服務端會接收到表單信息(包括隱藏域的值)。
服務端通過 bodyParser 解析表單信息,將結果放在 req.body 中。
于是,我們可以通過 req.body.movie 取到該表單中的信息。
那么 req.body.movie._id 就是隱藏表單項的值了(_id)。
這個 _id 用來區分“已存在的”和 “新添加”的內容。
結合視頻,理清 list.jade 中關于“修改”部分的邏輯,就知道為什么會這樣寫了 :)