-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdb.js
More file actions
38 lines (29 loc) · 874 Bytes
/
db.js
File metadata and controls
38 lines (29 loc) · 874 Bytes
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
'use strict';
var pg = require('pg.js');
var connectionString = process.env.DATABASE_URL;
function getConnection() {
function tryCatch(fn) {
try { fn(); }
catch (e) {}
}
var close;
return pg.connectAsync(connectionString).spread(function(client, done) {
close = done;
return client;
}).disposer(function() {
if (typeof close === 'function') tryCatch(close);
});
}
exports.getConnection = getConnection;
var queries = {};
var Promise = require('bluebird');
var fs = require('fs');
var path = require('path');
function getQuery(name) {
if (name in queries) return Promise.resolve(queries[name]);
return fs.readFileAsync(path.join('query', name + '.sql'), { encoding: 'utf8' }).then(function (query) {
queries[name] = query;
return query;
});
}
exports.getQuery = getQuery;