Package Exports
- mysql-wrapper
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (mysql-wrapper) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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.
Installation
npm install mysql-wrapper --saveUsage
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.
conn.query(sql, data, callback)
Execute a mysql query.
If you use helpers below, the parameters will be ** automatically escaped if necessary ** in order to avoid SQL Injection attacks.
sql
String a special version of typo syntax which optimized for sql grammar is provided.
data
Object template data for typo
callback
function(err, result) Callback of mysql quering
Example: Available helpers
Mysql WHERE: {{where data}}
conn.query('SELECT * FROM table {{where data}}', {
data: {
a: 1,
b: 'abc'
}
}, function(err, result){
console.log(err, result)
});Mysql VALUES: {{values values}}
'INSERT INTO table {{values values}}', {
values: {
a: 1,
b: 2
}
}
-> INSERT INTO table (a, b) VALUES ('1', '2')
```
##### Mysql SET: {{set data}}
```js
'INSERT INTO table {{set data}}', {
data: {
a: 1,
b: 2
}
}
-> INSERT INTO table SET a = '1', b = '2'Mysql ON: {{on condition}}
Mysql UPDATE: {{update data}}
Use them together
'SELECT p.a, p.b, q.a FROM p INNER JOIN q {{on 0}} {{where 1}}', [
{
'p.a': 'q.a',
},
{
'q.b': 1
}
]conn.end()
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!