database connection
Former-commit-id: dffd8318b09be96b43d526d10262f0908b8bc9d1
This commit is contained in:
47
src/database/database.js
Normal file
47
src/database/database.js
Normal 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;
|
||||
Reference in New Issue
Block a user