//tool.js 文件
var crypto=require('crypto');
function sha1(str){
return crypto.createHash('sha1').update(str).digest('hex');
}
function md5(str){
return crypto.createHash('md5').update(str).digest('hex');
}
var _extends=function(obj1,obj2){
console.log('_extends') //继承
for(var k in obj1){
obj2[k]=obj1[k]
}
}
module.exports={
sha1:sha1,
md5:md5,
_extends:_extends
}
//model.js文件
1 var util=require('util'); 2 const PREFIX='blog_'; 3 var db=require(__dirname+'/../config/db.js'); 4 //console.log(db); 5 function model(){ 6 this.prefix=PREFIX; 7 this.db=db; 8 } 9 10 model.prototype.insert=function(obj,callback){ 11 //insert into table() values() 12 //{username:'guojikai',age:'55',sex:'1'} 13 var table=this.table; 14 var fields=''; 15 var values=''; 16 for( var k in obj){ 17 fields+=k+','; 18 values=values+"'"+obj[k]+"'," 19 } 20 fields=fields.slice(0,-1); 21 values=values.slice(0,-1); 22 var sql="INSERT INTO "+this.prefix+table+'('+fields+') VALUES('+values+')'; 23 // console.log(sql+'--------------'); 24 this.db.query(sql,callback); 25 } 26 model.prototype.findOne=function (where,callback){ //查找一条; 27 // whre is arr; [{id:1},{username:admin}]; 28 var table=this.table; 29 var _WHERE=''; 30 if(util.isObject(where)){ 31 _WHERE+='WHERE '; 32 for(var k in where){ 33 _WHERE+=k+"='"+where[k]+"' AND "; 34 } 35 36 _WHERE=_WHERE.slice(0,-4); 37 }else if(typeof where =='string'){ 38 _WHERE='WHERE '+where; 39 } 40 var sql="SELECT * FROM "+this.prefix+table+' '+_WHERE+' LIMIT 1'; 41 console.log(sql); 42 this.db.query(sql,function(err,data){ 43 if(err){ 44 callback(err,0); 45 }else{ 46 callback(err,data[0]); 47 } 48 }); 49 } 50 model.prototype.select=function(fields,callback){ //查找所有; 51 var _FIELDS=''; 52 for(var i=0;i<fields.length;i++){ 53 _FIELDS+=fields[i]+','; 54 } 55 _FIELDS=_FIELDS.slice(0,-1); 56 var sql="SELECT "+_FIELDS+" FROM "+this.prefix+table; 57 console.log(sql); 58 this.db.query(sql,callback); 59 } 60 61 model.prototype.update=function(sets,where,callback){ 62 var _SETS=''; 63 var _WHERE=''; 64 var table=this.table; 65 for(var k in sets){ 66 _SETS+=k+"='"+sets[k]+"',"; 67 } 68 _SETS=_SETS.slice(0,-1); 69 for(var k2 in where){ 70 _WHERE+=k+"='"+where[k2]+"' AND "; 71 } 72 //update table set username='admin2',age='55' where id="5"; 73 var sql="UPDATE "+this.prefix+table+' SET '+_SETS+' '+_WHERE; 74 this.db.query(sql,callback); 75 } 76 model.prototype.del=function(where,callback){ 77 var table=this.table; 78 var _WHERE=''; 79 for(var k2 in where){ 80 _WHERE+=k+"='"+where[k2]+"' AND "; 81 } 82 var sql="DELETE FROM "+this.prefix+table+' '+_WHERE; 83 this.db.query(sql,callback); 84 } 85 86 module.exports=new model();
// users.js 文件; var model=require('./model.js'); var tool=require('../tool.js'); function User(){ this.table="users"; this.name="user"; } var user=new User(); tool._extends(model,user); module.exports=user 实现模块化