database connection

Former-commit-id: dffd8318b09be96b43d526d10262f0908b8bc9d1
This commit is contained in:
Ben
2022-02-05 16:50:59 +00:00
parent db1bc79534
commit be6da56525
10 changed files with 471 additions and 380 deletions

47
src/database/database.js Normal file
View File

@@ -0,0 +1,47 @@
const Logger = require('../logger.js');
const { Client } = require('pg');
class Database {
constructor() {
this.connection = null;
}
async connect(options) {
Logger.info('Database Connecting...');
// review options
if (!options) {
options = {
user: process.env.DATABASE_USER,
host: process.env.DATABASE_HOST,
database: process.env.DATABASE_DB,
password: process.env.DATABASE_PASSWORD,
port: process.env.DATABASE_PORT
};
}
this.options = options;
this.connection = await this.connectToDatabase();
Logger.info('Database Connected');
}
async connectToDatabase() {
return new Promise((resolve, reject) => {
const psqlClient = new Client(this.options);
psqlClient.connect();
psqlClient.query('SELECT NOW()', (err, res) => {
if (err) reject(err);
this.connection = psqlClient;
Logger.database(`PSQL Time: ${res.rows[0].now}`);
Logger.database(`Connected to ${this.options.host}`);
resolve(psqlClient);
});
});
}
}
module.exports = Database;