panthera-mysql-adapter
v3.0.0
Published
MySQL database adapter middleware for PantheraJS applications, based on mysql2/promise.
Downloads
3
Readme
panthera-mysql-adapter
MySQL database adapter middleware for PantheraJS applications, based on mysql2/promise
.
Creates a pool of MySQL connections upon instantiation and offers a quick, single-function call to obtain a connection from the pool, execute a MySQL query using the connection, and automatically close the connection when the query has finished executing.
Supports MySQL transactions with a similar, single-function call.
Installation
npm install panthera-mysql-adapter
Usage
const koa = require('koa');
const db = require('panthera-mysql-adapter');
let app = koa();
let options = {
host: 'host',
port: 'port'
};
app.use(db(app, options));
app.use(function* (next) {
let query = 'SELECT * FROM `table_name` WHERE `id` = :id';
let params = { id: 1 };
let result1 = yield this.db.execute(query, params);
// result1 -> result of SELECT query; ...[0] -> rows, ...[1] -> fields
let query1 = 'INSERT INTO `table_name` (`name`) VALUES (:one), (:two);';
let params1 = { one: 'Test1', two: 'Test2' };
let query2 = 'SELECT * FROM `table_name` WHERE `name` = :name LIMIT 1;';
let params2 = { name: 'Test1' };
let result2 = yield this.db.transact([query1, params1], [query2, params2]);
// result2[0] -> results of INSERT query; ...[0] -> rows, ...[1] -> fields
// result2[1] -> results of SELECT query; ...[0] -> rows, ...[1] -> fields
yield* next;
});
Configuration options
db
accepts all connection pool options supported by mysql2
and by default provides the bluebird
library as mysql2/promise
's Promise implementation.