При попытке запросить локальную базу данных 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 , как видно из журналов.
loginroutes.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 + "\""
просто ради, оказывается, аналогично предыдущему запросу.