繁体   English   中英

在 nodejs webapp 中使用 express 时,Res.redirect 不是 function

[英]Res.redirect is not a function while using express in a nodejs webapp

如果所需的数据成功更新,我正在尝试重定向到“/admin”路由,但我收到 res.redirect 不是 function 的错误。 我也试过写 return res.redirect 但它也不起作用。 节点高手,请帮忙。 在这里,我只是在它的 reg.no 上找到学生记录。 基础并使用其标记更新记录并重定向到管理页面。

app.post('/admin/midterm/marks',(req,res)=>{
    var m_written=[];
    var m_practical=[];
    
    var myjson=JSON.stringify(req.body);
    course.subjects.map(sub=>{
        if(!Array.isArray(req.body[`${sub}`]))
        {
            var p={subject:sub,mark:req.body[`${sub}`]}
            m_written.push(p);
        }
        else{
            var p={subject:sub,mark:req.body[`${sub}`][0]};
            var q={subject:sub,mark:req.body[`${sub}`][1]};
            m_written.push(p);
            m_practical.push(q);
        }
        
    });

    var first={
        sem:course._id,
        marks_sem:[{
            term:ms,
            m_written:m_written,
            m_practical:m_practical
        }]
    }
    if(!StudentRecord.total.length )
    {
        Student.updateOne({_id:check_Id},{total:first},function(err,res){
            if(err)
                {console.log("error");}
            res.redirect('/admin');
        });
    }

    else{
        var flag=0;
        StudentRecord.total.map(record=>{
            if(record.sem==required_sem)
            {
                flag=1;
                record.marks_sem.push(first.marks_sem);
                Student.updateOne({_id:check_Id},{total:StudentRecord.total},function(err,res){
                if(err)
                    {console.log("error");}
                 res.redirect('/admin');
                });

            }

        });
        if(flag==0)
        {
            StudentRecord.total.push(first);
            Student.updateOne({_id:check_Id},{total:StudentRecord.total},function(err,res){
                if(err)
                    {console.log("error");}
                     res.redirect('/admin');

            });
        }
    }});

您在回调中覆盖res 在回调result中命名第二个参数,一切都会正常工作。

app.post("/admin/midterm/marks", (req, res) => {
  var m_written = [];
  var m_practical = [];

  var myjson = JSON.stringify(req.body);
  course.subjects.map((sub) => {
    if (!Array.isArray(req.body[`${sub}`])) {
      var p = { subject: sub, mark: req.body[`${sub}`] };
      m_written.push(p);
    } else {
      var p = { subject: sub, mark: req.body[`${sub}`][0] };
      var q = { subject: sub, mark: req.body[`${sub}`][1] };
      m_written.push(p);
      m_practical.push(q);
    }
  });

  var first = {
    sem: course._id,
    marks_sem: [
      {
        term: ms,
        m_written: m_written,
        m_practical: m_practical,
      },
    ],
  };
  if (!StudentRecord.total.length) {
    Student.updateOne({ _id: check_Id }, { total: first }, function (err, result) {
      if (err) {
        console.log("error");
      }
      res.redirect("/admin");
    });
  } else {
    var flag = 0;
    StudentRecord.total.map((record) => {
      if (record.sem == required_sem) {
        flag = 1;
        record.marks_sem.push(first.marks_sem);
        Student.updateOne(
          { _id: check_Id },
          { total: StudentRecord.total },
          function (err, result) {
            if (err) {
              console.log("error");
            }
            res.redirect("/admin");
          }
        );
      }
    });
    if (flag == 0) {
      StudentRecord.total.push(first);
      Student.updateOne(
        { _id: check_Id },
        { total: StudentRecord.total },
        function (err, result) {
          if (err) {
            console.log("error");
          }
          res.redirect("/admin");
        }
      );
    }
  }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM