我正在尝试从mysql数据库中检索用户名,以下代码可以成功检索用户名。但是,发生err时,代码不会重定向到/ signin。该页面改为重定向到/ admin。不过,如果我添加
res.redirect('/ signin')
仅在最后一个花括号之前,它将重定向到登录页面,但无法检索用户名。
我希望它重定向到登录页面,如何?
const connection = require('./connection')
const signin = (req, res) => {
var email = req.body.email
var password = req.body.password
let queryStr = `select username from users where email='${email}' and password='${password}'`
return connection.query(queryStr, (err, rows, fields) => {
if (err) {
res.redirect('/signin')
} else {
req.session.email = email
res.json(rows[0])
}
})
}
module.exports = signin
我认为这与异步有关,因为代码执行最后一行,然后返回else语句。我认为这就是为什么它转到/ admin页面。但尚未修复。
connection.js
const mysql=require('mysql')
var connection=mysql.createConnection({
host:'localhost',
user:'root',
password:'root',
database:'essencejoin',
})
connection.connect()
connection.query('SELECT 1 + 1 AS solution', function (err, rows, fields) {
if (err) throw err
console.log('The solution is: ', rows[0].solution)
})
module.exports=connection
在不了解您的项目的情况下,我想您想研究使用快速重定向添加状态代码。
index(req, res, next) {
topicQueries.getAllTopics((err, topics) => {
if (err) {
res.redirect(500, "static/index");
} else {
res.render("topics/index", { topics });
}
});
}
类似的东西。另外,请注意项目中其他可能导致Express的简单错误。