1.数据库连接constmysqlDb=require("mysql");constconfig=require("./dbconfig");letoptions={host:config.config.db_host,--hostnameuser:config.config.db_user,--用户名密码:config.config.db_passwd,--用户密码数据库:config.config.db_name,--数据库名multipleStatements:true,--启用多行池};varpool=mysqlDb.createPool(选项);exports.query=function(sql,values){returnnewPromise((resolve,reject)=>{pool.getConnection(function(err,connection){if(err){reject(err)//console.log(err,"数据库连接失败");resolve({status:500,});}else{//console.log("数据库连接成功");connection.query(sql,values,(err,results)=>{if(err){reject(err);resolve({status:400});}else{connection.release();resolve({status:200,结果,});//resolve(rows)}//connection.release()//释放连接池});}})})}二、数据库操作--user数据库表名1.数据库查询精确查询select*fromuserwheretitle--查询一个title查询所有数据select*fromuserwheretitle='today'snews'--查询一条标题为今日新闻的数据多条件查询select*fromuserwheretitle='今日新闻'andage='28'select*fromuserwheretitle='今日新闻'orage='28'模糊查询select*fromuserwheretitlelike'%龙%'--查询所有包含"龙"的记录select*fromuserwhererealnamelike'%文%'andrealnamelike'%龙%'--查询字段+like'%龙%'andqueryfield+like'%文%'2.具体数据库查询letctx_query=ctx.请求体;--接受post值letpageSize=ctx_query.size-1;--每页显示的项目数letpage=ctx_query.page?(ctx_query.page-1)*pageSize:0;--页数//查询数据库letsql="select*fromlist";--没有分页的查询lettotal=awaitdb.query(sql);--总页数if(ctx_query.country==''&&ctx_query.title){sql+=`wheretitlelike'%${ctx_query.title}%'limit${page},${pageSize}`;}elseif(ctx_query.country&&ctx_query.title==''){sql+=`wherecountrylike'%${ctx_query.country}%'limit${page},${pageSize}`;}elseif(ctx_query.country==""&&ctx_query.title==""){sql+=`limit${page},${pageSize}`;}else{sql+=`wheretitlelike'%${ctx_query.title}%'andcountrylike'%${ctx_query.country}%'limit${page},${pageSize}`;}console.log('sql',sql)constresult=awaitdb.query(sql);3.数据库插入数据INSERTINTOusers(id,user,passwd)VALUES(12,'zhaofang','111111');让查询=ctx.request.body;--接受post传值letsql="INSERTINTOlist";--list为表名sql+=`(title,date,content,name,country,city)VALUES('${query.title}','${query.date}','${query.content}','${query.name}','${query.country}','${query.city}')`;constresults=awaitdb.query(sql)--连接数据库操作4.数据库修改数据letquery=ctx.request.body;--接受postpassvalueletsql="UPDATElistSET";sql+=`title='${query.title}',date='${query.date}',content='${query.content}',name='${query.name}',country='${query.country}',city='${query.city}'whereid='${query.id}'`;常量结果=等待数据库。query(sql)--连接数据库操作5.删除数据库letquery=ctx.query;--Acceptdelpassvalueletsql=`DELETEFROMlistwhereid='${query.id}'`;constresults=awaitdb.query(sql);假设主键或唯一索引是从客户端收到的good_id{pageNo:5,pagesize:10}selectfromtablewheregood_id>(pageNo-1)pageSizelimitpageSize;–返回good_id40和50之间的数据,根据数据重新排序。当返回的信息是有序的或者倒序的时候,根据数据对上面的语句重新排序。orderbyASC/DESCorderorreverseorder,默认顺序是selectfromtablewheregood_id>(pageNo-1)pageSizeorderbygood_idlimitpageSize;–返回good_id在40到50之间的数据,数据按照good_id的先后顺序排列
