NodeJS Get表单没有返回任何内容

时间:2018-04-27 05:04:13

标签: node.js express ejs

我试图从一个嵌套的表单中发送一些数据。我将提供代码并解释它。 EJS:

router.get('/updateEngineer/(:id)', function(req, res, next){

      var o_id = new ObjectId(req.params.id).toString();
      console.log(req.body.eng);
      db.collection('projects').find({
        "_id": ObjectId(o_id).toString
      }).toArray(function(err, results) {

        for (var i = 0; i < results.length; i++) {

          if (results[i]._id == o_id) {

            console.log(results[i]);



            db.collection('projects').updateOne({
              "_id": results[i]._id
            }, {

              $set: {
                "engineerEmail": req.body.eng
              }

            }, function(err) {

              console.log("success");
              res.redirect('/projects');
            });
          }

        }
      });
 })

我的服务器端:

extraData

它成功调用该程序,但是当我打印req.body.eng返回undefined时,当我打印req.body时它返回{}。我不确定为什么它不起作用,所以对此的任何见解将不胜感激

1 个答案:

答案 0 :(得分:0)

您的表单方法为GET,它会将表单数据作为url参数发送。您可以在路由处理程序中以req.query的形式访问它。

但您应该使用POST方法获取req.body中的数据。