knex-mysql-middleware
Version:
Set a MySQL flavored Knex connection that can be accessed via Koa or Express middleware.
45 lines (36 loc) • 945 B
JavaScript
;
/**
* Imports.
*/
var knex = require('knex');
var close = require('./close');
/**
* Exports.
*/
module.exports = knexMysqlKoa;
/**
* Set a MySQL flavored Knex connection that can be accessed via Koa or Express middleware.
*
* @return {Function}
* Koa middleware.
*/
function knexMysqlKoa() {
var conn = {
ssl : process.env.DATABASE_SSL,
host : process.env.DATABASE_HOST,
user : process.env.DATABASE_USER,
debug : process.env.DATABASE_DEBUG,
charset : process.env.DATABASE_CHARSET,
password : process.env.DATABASE_PASS,
database : process.env.DATABASE_NAME
};
var pool = {
min : process.env.DATABASE_POOL_MIN || 0,
max : process.env.DATABASE_POOL_MAX || 1
};
return function *knexMysqlKoa(next) {
this.knex = knex({ client: 'mysql', connection: conn, pool: pool });
yield next;
this.res.once('finish', close.bind(this, this.knex));
};
};