evens
v0.2.0
Published
unleash the power of event
Downloads
46
Readme
Better expression for nested Query in nodejs sample mysql DB
simple query
"use strict";
let evens = require('evens').mysql;
let conf = require('./db').singleConfig;
let t = new evens(conf);
let plan = [ { query: 'SELECT * FROM gym'}]; // add more query by { query: 'blabla' }
t.query(plan);
t.on('end', (r)=>{ console.log(r.esult); });
advanced query
"use strict";
let evens = require('evens').mysqlPool;
let pool = require('./db').pool; // your DB pool ex> var mysql = require('mysql'); var pool = mysql.createPool({});
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
}
});