hapi-plugin-pg
v1.1.2
Published
Hapi.js Plugin for postgres (PG 7.x.x)
Downloads
11
Maintainers
Readme
hapi-pg
Hapi.js plugin for postgres (Using PG 7.X.X)
Install
$ npm install hapi-plugin-pg
Usage
Register
- Register the plugin with username/password/host/port/database
const plugin = {
register: require('hapi-plugin-pg'),
options: {
user: 'username',
password: 'password',
port: 5432,
host: 'localhost',
database: 'test_db',
attach: 'onPreHandler', // Hapi.js events
detach: 'tail', // Hapi.js events
}
};
- Register with connection String
const plugin = {
register: require('hapi-plugin-pg'),
options: {
connectionString: 'postgres://username:password@localhost/database',
}
};
- Make sure to register the plugin with
connectionString
ORuser
/password
/host
/port
/database
not both! this will throw an error. - attach event will ask from the Postgres pool for a connection.
- detach event will return the Postges connection to the pool.
Query
- Using
request
object:
request.pg.client.query(query, (err, result) => {
if (err) {
// do something
}
// result object
});
- Using the
server
object:
server.plugins['hapi-plugin-pg'].pg.connect((err, client, done) => {
if (err) {
throw err
}
client.query('SELECT * FROM users WHERE id = $1', [1], (err, res) => {
done();
if (err) {
console.log(err.stack)
} else {
console.log(res.rows[0])
}
});
});
Example
server.route({
method: 'GET',
path: '/{name}',
config: {
handler: (request, reply) => {
// THIS IS ONLY EXAMPLE
// Make sure to validate your params
request.pg.client('SELECT * FROM users WHERE name = $1', [request.params.name], (err, res) => {
request.pg.done();
if (err) {
return reply(err).code(500);
}
if (!res) {
return reply('not found').code(404);
}
return reply(res).code(200);
});
}
}
});
Contribute
Feel free to create a pr just make sure to add tests
License
MIT