UNPKG

yhbatis

Version:

Like Mybatis for nodejs By YYH.

62 lines (59 loc) 1.85 kB
var analysisMapper = []; function analysis () {} var analysisObject = new analysis(); analysis.prototype.mappingSection = function(jsMapper){ for(var i = 0 ; i < jsMapper.length ; ++ i){ for(var key in jsMapper[i].MAPPER){ if(key.toUpperCase() == "INSERT" || key.toUpperCase() == "UPDATE" || key.toUpperCase() == "SELECT" || key.toUpperCase() == "DELETE"){ if(jsMapper[i].MAPPER[key].length == null) analysisMapper[jsMapper[i].MAPPER[key]["ID"]] = jsMapper[i].MAPPER[key]["_text"]; else{ for(var j = 0 ; j < jsMapper[i].MAPPER[key].length ; ++j){ analysisMapper[jsMapper[i].MAPPER[key][j]["ID"]] = jsMapper[i].MAPPER[key][j]["_text"]; } } } } } } analysis.prototype.sqlSection = function(section,dto,pool,callback){ var copyMapper = new String(analysisMapper[section]); if(dto!=null){ if(dto!=""){ if(Object.keys(dto).length !=0){ for(var key in dto) { var reg = new RegExp("#{"+key+".*?}","g"); var tempDtoKey = (dto[key]+"").replace(/"/g, "\\\""); tempDtoKey = tempDtoKey.replace(/'/g, "\\\'"); copyMapper = copyMapper.replace(reg,"'"+tempDtoKey+"'"); } if((/#{.*?}/g).test(copyMapper)){ throw new Error("dto failure "+copyMapper.match(/#{.*?}/g)); } } } } copyMapper = copyMapper.toString(); baseDataBase('error '+section,function(connection){ connection.query(copyMapper, function(err, rows) { if (err) { console.error('error '+ section + err.stack); connection.release(); return; } connection.release(); callback(rows); }); }); } exports.analysis = analysisObject; function baseDataBase (msg,callback){ pool.getConnection(function(err, connection) { if (err) { console.error(msg + err.stack); return; } callback(connection); }); }