express.js从mysql数据库检索用户名不会重定向到登录页面

问题描述 投票:0回答:1

我正在尝试从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
javascript mysql node.js express
1个回答
-1
投票

在不了解您的项目的情况下,我想您想研究使用快速重定向添加状态代码。

 index(req, res, next) {
    topicQueries.getAllTopics((err, topics) => {
      if (err) {
        res.redirect(500, "static/index");
      } else {
        res.render("topics/index", { topics });
      }
    });
  }

类似的东西。另外,请注意项目中其他可能导致Express的简单错误。

https://expressjs.com/en/api.html#res.redirect

© www.soinside.com 2019 - 2024. All rights reserved.