json-object-editor
Version:
JOE the Json Object Editor | Platform Edition
78 lines (65 loc) • 2.3 kB
JavaScript
var mysql = require('mysql');
function MYSQL(db){
var modulename = JOE.Utils.color('[mysql]','module');
var mBM = new Benchmarker();
var self = this;
var sql_info = db || JOE.webconfig.mysql;
var connection
if(sql_info){
connection = mysql.createConnection(sql_info);
connection.connect(function(err) {
if (err) {
console.log(modulename+'error connecting: ' + err.stack);
return;
}
console.log(modulename+'connected as id ' + connection.threadId+' in '+mBM.stop()+' secs');
});
}
this.get =function(collection,specs/*query,callback*/){
var specs = specs || {};
var schema = JOE.Schemas.schema[collection];
var con;
if(specs.storage && specs.storage.connection){
con = mysql.createConnection(specs.storage.connection);
}else{
con = connection;
}
var callback = specs.callback || function (error, results, fields) {
if (error) {
console.log(error);
}
try{
console.log(modulename+': '+results.length)
}catch(e){
console.log(e);
}
};
var query = specs.query || {};
//logit(specs);
//connection.connect();
console.log('mysql query',query);
con.query(query, callback);
if(specs.storage && specs.storage.connection){
con.end();
}
};
this.save = function(data,collection,callback){
if(data._id && !data._id.isCuid()){
//console.log(data._id);
data._id = mongojs.ObjectId(data._id);
}
database = mongojs(db);
database.collection(collection).save(data,function(err,results){
if(err){console.log('save error: '+err)}
JOE.Cache.update();
(callback||logit)(err,results);
});
};
this.delete =function(data,collection,callback){
data.deleted = new Date().toISOString();
JOE.Mongo.save(data,collection,callback);
};
this.Connection=connection;
return this;
};
module.exports = new MYSQL();