JSPM

mysql-wrapper

0.1.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 7
  • Score
    100M100P100Q35764F
  • License MIT

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

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 --save

Usage

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!