在尝试查询本地mysql数据库时,遇到以下错误:
..\server\node_modules\mysql\lib\protocol\Parser.js:80
throw err; // Rethrow non-MySQL errors
^
Incorrect arguments
之后没有提供进一步的信息。我查阅了已有的解决方案,例如添加:
con.on('error', function(err) {
console.log("[mysql error]",err);
});
甚至替换(唯一的) throw err
在代码中使用 console.log(err);
但没有一个成功。
一旦错误被显示出来,服务器最终会崩溃,并且会在 console.log('Query res: ', results);
在下面的代码中,这意味着请求已经成功并获取了所需的数据。
在我看来,这可能是由bcrypt引起的,但是错误来自mysql node.js包,如日志中所示。
登录路线.js:
exports.login = function(req, res) {
console.log("email:", req.body.email, "password:", req.body.password);
var email = req.body.email;
var password = req.body.password;
con.query("SELECT * FROM users WHERE email = ?", [email], (err, results) => {
if (err) {
console.log("Error ocurred");
res.send({"code":400, "failed":"error occurred"});
} else {
console.log('Query res: ', results);
if (results.length > 0) {
if (bcrypt.compareSync(results.password, password))
res.send({"code":200, "success":"login successful"});
else
res.send({"code":204, "success":"email & password combination does not match"});
} else
res.send({"code":204, "success":"email does not exist"});
}
});
};
我错过了什么?我能做些什么来解决这个问题?
谢谢您。
编辑:也尝试了 SELECT * FROM users WHERE email = \"" + email + "\""
只是为了这个目的,结果与之前的请求类似。
1条答案
按热度按时间2ekbmq321#
要在代码中记录任何异常,需要将代码块放在其中
try catch
```try {
// your code here
} catch (error) {
console.log(error);
res.send({ code:400, failed: "error occurred"});
}