I wrote a class "DBConnection" to connect to a mariadb database and query table value as below with a js file to verify return result. However, I got "undefined" on console. I expect the return is value of the sql query . Anyone knows what's going wrong and how to fix it, please!
class DBConnection {
constructor() {}
static connectDb() {
const mariadb = require('mariadb');
const pool = mariadb.createConnection({
host: '127.0.0.1',
user:'***',
password: '***',
database: 'xxx',
connectionLimit: 5
});
return pool;
}
queryTable(sql) {
const dbConnection = DBConnection.connectDb();
let result;
dbConnection.then(conn => {
conn.query(sql)
.then((rows) => {
result = rows[0];
conn.end();
return result;
})
.catch(err => {
console.log("Failed to query. \n" + err);
conn.end();
})
}).catch(err => {
console.log("Failed to connect to db. \n" + err);
});
}
}
module.exports = DBConnection;
Code to verify the class above.
var DBConnection = require('./db-connection');
const sql = "SELECT * FROM abc where id=1";
const conn = new DBConnection();
let result = conn.queryTable(sql);
console.log(result);