Немного изучив mssql и Promise получил вот такой рабочий вариант:
const mssql = require('mssql');
const config = {
server: "localhost",
user: "sa",
database: "support",
password: "01470258"
}
class DB {
constructor() {
this.pool = new mssql.ConnectionPool(config);
this.poolConnect = this.pool.connect().then(() => {
console.log("Успешное подключение к базе данных");
this.connect = true;
this.request = this.pool.request();
}, () => {
console.log("Не удалось подключиться к базе данных");
this.connect = false;
});
}
async query(sql, cb) {
await this.poolConnect;
if (this.connect) {
this.request.query(sql).then((result) => {
console.log("Успешный запрос");
cb(result.recordset);
}, () => {
console.log("Ошибка при обработке запроса");
cb(null, "Ошибка при обработке запроса");
});
} else {
cb(null, "Ошибка подключения к БД");
};
}
}
module.exports = DB;
Насколько хороша такая реализация?