微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法让 'res.status(200).redirect('')' 工作

如何解决无法让 'res.status(200).redirect('')' 工作

我正在处理一个项目,该项目要求我在 MysqL 查询后将用户重定向到新页面。出于某种原因,它在整个程序的其余部分都有效,但在这个特定部分,它什么也不做。 这是我的代码不起作用。

不知道我在这里遗漏了什么......

exports.ad_dash_load = async (req,res) => {    
    
    var uid=req.body.User_id;  
    
    db.query('SELECT COUNT(*) AS `z`FROM `user`',async (error,results)=>{
        
        if(error) {
            console.log(error);
        } else {       
            let user_count=results[0].z; 
           
            res.status(200).redirect("/admin?Id="+uid+"&user_count="+user_count);       
        }
    
    })  
}        

解决方法

因此,我们可以通过其他两种方式执行此查询

选项 1

将结果保存到来自查询的变量中,然后检查该变量是否有结果

exports.ad_dash_load = async (req,res) => {
  var uid = req.body.User_id;

  const result = await db.query("SELECT COUNT(*) AS `z`FROM `user`");

  if (!result) {
    console.log(error);
  } else {
    let user_count = results[0].z;
    res.status(200).redirect("/admin?Id=" + uid + "&user_count=" + user_count);
  }
};

选项 2

使用这个方法相当于使用try catch

在异步数据库查询中使用 .then().catch()

exports.ad_dash_load = async (req,res) => {
  var uid = req.body.User_id;

  db.query("SELECT COUNT(*) AS `z`FROM `user`")
    .then((result) => {
      let user_count = results[0].z;
      res
        .status(200)
        .redirect("/admin?Id=" + uid + "&user_count=" + user_count);
    })
    .catch((err) => {});
};
,

好的,我想我明白这个问题的根源......“导出”功能应该是从前一页上的表单POST触发的,但是因为我没有从我选择的表单页面移动使用 javascript 例程将用户 ID 代码发送到“导出”函数。这个事实是导致重定向不起作用的原因。试图想出另一种方法来解决这个问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。