Skip to content

Commit 82cc8ce

Browse files
committed
Start on pg client
1 parent aaf7c6a commit 82cc8ce

1 file changed

Lines changed: 17 additions & 1 deletion

File tree

index.js

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
// setup
44
const http = require('http')
5+
const Pg = require('pg').Pool
56
const tinyParams = require('tiny-params')
67
const port = process.env.PORT || process.env.port || 8091
78
const handlers = {
@@ -23,11 +24,12 @@ const scrud = {
2324

2425
// globals
2526
let server
27+
let pgPool
2628
let base = ''
2729
let baseRgx = new RegExp(`^/?${base}/`)
2830
let resources = {}
2931

30-
// helpers
32+
// local helpers
3133
const cleanPath = (url) => {
3234
return decodeURIComponent(url).replace(baseRgx, '').replace(/\/$/, '')
3335
}
@@ -37,6 +39,19 @@ const parseId = (url) => {
3739
return (id || '').match(/^\d+$/) ? parseInt(id, 10) : id || null
3840
}
3941

42+
const pgRun = (query, args) => {
43+
if (!pgPool) return Promise.reject(new Error('no database configured'))
44+
return new Promise((resolve, reject) => {
45+
pgPool.connect((err, client, done) => {
46+
if (err) return reject(err)
47+
client.query(query, args, (err, result) => {
48+
done(err)
49+
return err ? reject(err) : resolve(result.rows)
50+
})
51+
})
52+
})
53+
}
54+
4055
// exports
4156
module.exports = {register, start, logger, _find, _findAll, _create, _save}
4257

@@ -56,6 +71,7 @@ function start (opts = {}) {
5671
return new Promise((resolve, reject) => {
5772
server = http.createServer(handleRequest)
5873
server.listen(opts.port || port)
74+
if (opts.postgres) pgPool = new Pg(opts.postgres)
5975
return resolve(server)
6076
})
6177
}

0 commit comments

Comments
 (0)