0.0.13 • Published 5 years ago

@hexly/dbo v0.0.13

Weekly downloads
-
License
ISC
Repository
github
Last release
5 years ago

Node Database Object for Postgres

Easiest usage is to isolate all instances to a single DBO in dbo.js or something:

const path = require('path')
const { Pool } = require('pg')
const { DboFactory, Configurer } = require('@hexly/dbo')

let dbo
const initDbo = async () => {
  if (dbo) {
    return dbo
  }

  const pool = new Pool({
    connectionString: 'postgres://postgres@localhost:5432/postgres'
  })

  new Configurer().configure()
  const root = path.resolve(__dirname, './src')
  const factory = new DboFactory().scan(root)

  dbo = factory.build(pool.connect.bind(pool))
  return dbo
}

module.exports = {
  initDbo
}

And then have your middleware/etc wire it up:

var express = require('express')
const { initDbo } = require('./dbo')

var app = express()
app.use( async(req, res, next) => {
  const dbo = await initDbo()
  req.dbo = dbo
  next()
})

app.get('/', async (req, res) => {
  const person = await req.dbo.getPeople.one({ids: [1]})
  const people = await req.dbo.getPeople.many({})
  res.send({ person, people })
})

const port = process.env.PORT || 3000
app.listen(port, (a, b, c) => {
  console.log('listening on', port)
})
0.0.13

5 years ago

0.0.10

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago

0.0.7

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago