为了账号安全,请及时绑定邮箱和手机立即绑定

我一直没搞明白这段代码和表单隐藏域的关系,哪位大侠详细解释下

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}")

正在回答

1 回答

提交表单后,服务端会接收到表单信息(包括隐藏域的值)。

服务端通过 bodyParser 解析表单信息,将结果放在 req.body 中。

于是,我们可以通过 req.body.movie 取到该表单中的信息。

那么 req.body.movie._id 就是隐藏表单项的值了(_id)。

这个 _id 用来区分“已存在的”和 “新添加”的内容。

结合视频,理清 list.jade 中关于“修改”部分的逻辑,就知道为什么会这样写了 :)

2 回复 有任何疑惑可以回复我~
#1

Black_Sugar

那添加成功后的跳转,id的值是怎么来的?
2016-10-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
node+mongodb 建站攻略(一期)
  • 参与学习       91860    人
  • 解答问题       889    个

带你完整实现一个从前端到后端的项目,初中级前端开发工程师必学课程

进入课程

我一直没搞明白这段代码和表单隐藏域的关系,哪位大侠详细解释下

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信