当前位置: 首页 > 后端技术 > Node.js

node.js拼接mysql工具

时间:2023-04-03 20:21:44 Node.js

node.js中拼接mysql工具前阵子被迫分享node.JS,写sql的时候真是烦死了。之前写php的时候,发现php真的很聪明。php中双引号可以识别变量,js就惨了。写sql查询的时候要拼字符串写变量,然后sql本身就有很多字符串,js字符串需要单双循环。真想欲哭无泪。写稍微复杂一点的sql,得改好几遍。在网上找了半天,终于果断写了一篇。目前只支持增删改查,适合用nodejs做后台写小demo的玩家。上源码:varsqlJoin=(function(){varwhereResolve=function(type,whereSwitch){if(whereSwitch.where){type+='WHERE';}varkeyAry=(whereSwitch&&whereSwitch.whereProp)?whereSwitch.whereProp:[];if(keyAry.length){for(leti=0;i1){for(letj=0;j'INSERT''DELETE''UPDATE''SELECT'*@paramtableNameString查询表名*@paramwhereSwitch[,Object]配置WHERE语句*@paramlimitSwitch[,Object]配置LIMIT语句*@returnsString由sqlJoin函数连接的sql查询字符串varsqlJoin=function(sqlType,tableName,whereSwitch,limitSwitch){varSELECT='',UPDATE='',DELETE='',INSERT='';switch(sqlType.type){case'SELECT':SELECT='SELECT';如果(sqlType.distinct){SELECT+='DISTINCT'}sqlType.prop=sqlType.prop?sqlType.prop:[];如果(sqlType.prop&&sqlType.prop.length){for(leti=0;i'}]},{limit:false,num:1});控制台日志(海峡);//SELECT*FROM`members`WHERE`mNum`='7501'OR`mName`='刘想'查询——%+AND+ORvarstr=sqlJoin({type:'SELECT'},'members',{where:true,whereProp:['(',{'mNum':7501,operator:'='},'OR',{mName:'刘想',operator:'='},')','AND',{points:5,operator:'>'}]},{limit:false,num:1});console.log(str);//SELECT*FROM`members`WHERE(`mNum`='7501'OR`mName`='刘想')AND`points`>'5'查询——DESC/ASC//true:ASC,false:DESCvarstr=sqlJoin({type:'SELECT',orderProp:{points:false}},'members');console.log(str);//SELECT*FROM`members`ORDERBYpointsDESC查询——WHEREvarstr=sqlJoin({type:'SELECT',prop:['mName','points','mNum'],orderProp:{points:true}},'members',{where:true,whereProp:[{mId:2,operator:'>'}]});console.log(str);//SELECT`mName`,`points`,`mNum`FROM`members`WHERE`mId`='24'查询——distinct/*varstr=sqlJoin({type:'SELECT',distinct:true,prop:['points'],orderProp:{points:true}},'members',{where:true,whereProp:[{mId:2,operator:'>'}]});控制台.log(str);//SELECTDISTINCT`points`FROM`members`WHERE`mId`>'2'ORDERBYpointsASC