*Note: * evens takes care of of these things.
You don't need to worry about :
- Connection management (release or close)
- Commit
- Rollback
- Error handling
#### How to Use ?
sample DB
"use strict";
let evens = require('evens').mysql;
let t = new evens({ host: '127.0.0.1', user: , password: , .... });
let plan = [ { query: 'SELECT * FROM gym'}]; // add more query by { query: 'blabla' }
t.query(plan);
t.on('end', (r)=>{ console.log(r.esult); });
"use strict";
let evens = require('evens').mysqlPool;
const mysql = require('mysql');
const pool = mysql.createPool({
connectionLimit : 10,
host : '127.0.0.1',
user : 'example',
password : 'your_password',
port : 3306,
database : 'your_db'
});
let plan = [ {
query: { sql: 'UPDATE gym SET name = ? WHERE id = \'bird\'', timeout : 500000 },
values: ['gym'],
cData: { switch : 'off' } // must assign if you're going to use data chainning
}, {
query: 'SELECT * FROM gym '
}, {
customData : [ 1 ],
customQuery : (data) => {
// just give a number to customData you can retrive all plan[1] query result
if(data){
return { query: 'SELECT * FROM gym '};
} else {
return 'pass'; /* must consider customData exception
by 'pass' command you can just skip this query
or you can just quit process and end connection by 'end' command */
}
}
}, {
// if query result not matched do not query
customData : [ { 1: 'name'} ], // you can set static value or query result ( obj,str,arr )
customQuery : (data, cData) =>{
if(data[0]==='gym'){
cData['switch'] = 'on'; // let's get more tricky
return {
query: 'SELECT * FROM ' + data[0],
cData: cData
};
} else {
return 'pass';
}
}
}, {
customQuery : (data, cData)=>{
if(cData.switch==='on') return {query: 'SELECT * FROM day'}; // you can change program flow by cData
}
} ];
let Q = new evens(pool, {queryTimeout: 10000}); // set general query timeout
Q.query(plan);
Q.on('end', (r)=>{
if(r.success){
console.log(r.esult);
} else {
console.log(JSON.stringify(r)); // err
}
});