关于响应错误的问题,如何解决?

如下是一个路由回调函数:
exports.login = (req, res) => {

const userinfo = req.body

const sql = 'select * from ev_users where username=?'

db.query(sql, userinfo.username, (err, results) => {

if(err){ return res.cc(err) }

if(results.length !== 1 ){ return res.cc('登陆失败!') }
})
// 判断密码是否正确
//核心实现思路:调用 bcrypt.compareSync(用户提交的密码, 数据库中的密码) 方法比较密码是否一致
// 返回值是布尔值(true 一致、false 不一致)

// 拿着用户输入的密码,和数据库中存储的密码进行对比
const compareResult = bcryptjs.compareSync( userinfo.password, results[0].password)

if ( !compareResult ) return res.cc('登陆失败!') 

// TODO 登陆成功,生成 Token 字符串
res.send('login OK')

}

终端运行没问题

然而用Postman请求回来的数据:
{
"status": 1,
"message": "results is not defined"
}
是这样的。
即使是输入的密码错误也响应如上一串,密码改对也是这个结果。
尝试过重新注册一个username和password,数据库里也能接收到,但响应结果还是"results is not defined"。

说明res.cc这个方法里面没有把那个message属性的值传递进去,检查下。望采纳

很明显是你的查询语句查询的数据出了问题
先看看sql有没有问题,再排查一下箭头指的几个地方是否能正常拿到值

img