Во-первых, вы на самом деле не подключаетесь к базе данных.
Если вы ссылаетесь на документы https://github.com/mysqljs/mysql:
var connection = mysql.createConnection({
host : 'localhost',
user : 'me',
password : 'secret',
database : 'my_db'
});
// then connect method
connection.connect();
Таким образом, ваш код никогда не будет работать ..
Во-вторых, вы закрываете соединение перед выполнением любого запроса:
con.end();
Правильно закрывать соединение после leerPromesa
выполнения функции.
Наконец, код может выглядит примерно так:
const con = mysql.createConnection({
host: datos.host,
user: datos.user,
password: datos.password,
database: datos.database
});
con.connect();
function leerPromesa() {
return new Promise(function(resolve, reject) {
con.query("SELECT * from ranking;", function(err, rows, fields) {
if (err) {
return reject(err);
}
return resolve(rows);
});
});
}
leerPromesa()
.then(
function(rows) {
rows.forEach(element => msg.reply(element));
},
function(err) {
msg.reply(err);
}
)
.finally(function() {
con.end();
});
Я использовал finally
метод на Promise, чтобы закрыть соединение в любой ситуации https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise/finally