node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org »

koa-mysql

koa-mysql

npm version

A Node.js Koa wrapper for felixge/node-mysql based off of sidorares/mysql-co.

Requirements

  • Node.js v4.x+ for ES6 generators support

Usage

First, install the package using npm:

npm install koa-mysql --save

Then, execute a query within a Koa middleware function using the following code:

var mysql = require('koa-mysql');
 
// Create a MySQL connection pool (do this once) 
var db = mysql.createPool({ user: 'root', password: '', database: 'test', host: 'localhost' });
 
// Execute a sample query (with params) 
var rows = yield db.query("select ? + ? as test", [1, 2]);
 
// Output test result (3) 
this.body = { test: rows[0].test };

Koa Example

Here's a more complete example that includes creating a basic Koa app and executing a query (also available in examples/query.js):

var koa = require('koa');
var mysql = require('koa-mysql');
 
// Create a MySQL connection pool (do this once) 
var db = mysql.createPool({ user: 'root', password: '', database: 'test', host: 'localhost' });
 
// Create sample app 
var app = koa();
 
// Run sample app 
app.use(function* () {
    try {
        // Execute a sample query (with params) 
        var rows = yield db.query("select ? + ? as test", [1, 2]);
 
        // Output test result (3) 
        this.body = { test: rows[0].test };
    }
    catch (err) {
        // 500 Internal Server Error 
        this.status = 500;
        this.body = { error: err };
    }
});
 
// HTTP port 
var port = process.env.PORT || 3000;
 
// Listen for connections 
app.listen(port);
 
// Log port 
console.log('Server listening on port ' + port);

Run the script and visit http://localhost:3000/ to test it out. The server should return { test: 3 }.

License

Apache 2.0