如何解决无法让 '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 举报,一经查实,本站将立刻删除。