-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsql.js
More file actions
57 lines (49 loc) · 1.68 KB
/
Copy pathsql.js
File metadata and controls
57 lines (49 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/* jshint node: true */
'use strict';
const pg = require('pg');
const util = require('util');
const logger = require('./services/logger.service').getLogger();
const dbConfig = require('./configs/dev.config').database;
const pool = new pg.Pool({
host: dbConfig.host,
user: dbConfig.username,
database: dbConfig.db,
password: dbConfig.password,
port: dbConfig.port,
max: 20,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 200000
});
pool.on('error', (err, client) => {
logger.error('[error] Unexpected error on idle client: %s', err);
});
logger.info('[sql] connecting to: %s@%s:%s', dbConfig.db, dbConfig.host, dbConfig.port);
pool.on('error', (err, client) => {
logger.error('[error] Unexpected error on idle client: %s', err);
//process.exit(-1)
});
logger.info('[sql] connecting to: %s@%s:%s', dbConfig.db, dbConfig.host, dbConfig.port);
class db {
executeQuery(query) {
return new Promise((resolve, reject) => {
pool.connect((err, client, done) => {
if (err){
reject(err);
}else{
client.query(query, (err, result) => {
done();
if (err) {
logger.trace('[query] %s', query);
logger.error('[db] %j', err);
reject(err);
} else {
logger.trace('[db] returned %d rows | %s', result.rowCount, query);
resolve(result.rows);
}
})
}
})
});
}
};
module.exports = db;