The script below is working for me (some extra console.log() lines that can be removed).
function login(email, password, callback) {
const mysql = require('mysql');
const bcrypt = require('bcrypt');
const connection = mysql.createConnection({
host: configuration.ip,
user: configuration.user,
password: configuration.password,
database: configuration.database
});
//console.log(connection);
connection.connect();
const query = 'SELECT id, nickname, email, password FROM users WHERE email = ?';
connection.query(query, [ email ], function(err, results) {
if (err) console.log(err);
if (err) return callback(err);
if (results) console.log(results);
if (results.length === 0) return callback(new WrongUsernameOrPasswordError(email));
const user = results[0];
bcrypt.compare(password, user.password, function(err, isValid) {
if (err || !isValid) return callback(err || new WrongUsernameOrPasswordError(email));
callback(null, {
//user_id: user.id.toString(),
user_id: user.email,
nickname: user.nickname,
email: user.email
});
});
});
}