mysql-wrapper

Mysql-wrapper is a wrapper of node-mysql to improve fault tolerance, including enhanced query generator and data escaping powered by typo template engine

Mysql-wrapper

A wrapper of node-mysql to improve fault tolerance, including enhanced query generator and data escaping which powered by typo template engine.

Mysql-wrapper is also a supervisor and a minor set of node-mysql.

Mysql-wrapper is created to solve the "Cannot enqueue Handshake after already enqueuing a Handshake" error of node-mysql and more.

npm install mysql-wrapper --save
var mysql = require('mysql-wrapper');
var conn = mysql({
    host: '127.0.0.1',
    port: '3306',
    user: 'root',
    password: '123456',
    database: 'test',
});
conn.query(...);

Methods

There're only two methods, maybe one, that you'd frequently use.

Execute a mysql query.

If you use helpers below, the parameters will be ** automatically escaped if necessary ** in order to avoid SQL Injection attacks.

String a special version of typo syntax which optimized for sql grammar is provided.

Object template data for typo

function(err, result) Callback of mysql quering

conn.query('SELECT * FROM table {{where data}}', {
    data: {
        a: 1,
        b: 'abc'
    }
}, function(errresult){
    console.log(err, result)
});
'INSERT INTO table {{values values}}', {
    values: {
        a: 1,
        b: 2
    }
}
 
-> INSERT INTO table (a, b) VALUES ('1', '2')
'INSERT INTO table {{set data}}', {
    data: {
        a: 1,
        b: 2
    }
}
 
-> INSERT INTO table SET a = '1', b = '2'
'SELECT p.a, p.b, q.a FROM p INNER JOIN q {{on 0}} {{where 1}}', [
    {
        'p.a': 'q.a',
    }, 
    {
        'q.b': 1
    }
]

Close the current connection, if there's another conn.query executed, the connection will be automatically created again.

For an application of high concurrence, you should NEVER use this method!