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

简单学习下node吧~还在学习中~~~

时间:2023-04-03 15:17:14 Node.js

利用业余时间研究node.js+koa+mysql,做一个简单的小例子。代码有点随意。我这里只是做个介绍。升华部分还是需要大家自己成长。相比之下,Koa比express好用多了。没事可以自学。多学一点总是好的!项目地址https://github.com/iopwanglei...1.使用数据库管理navicatforMySQL破解版地址https://blog.csdn.net/chandddlleerr/article/details/746065482.navicat连接失败解决办法https:///blog.csdn.net/u013700358/article/details/803065603。联合查询*用户表CREATETABLEIFNOTEXISTSuser(uidint(11)NOTNULL,usernamevarchar(30)NOTNULL,passwordchar(32)NOTNULL)ENGINE=InnoDBDEFAULTCHARSET=utf8;+-----+------------+---------+|uid|用户名|密码|+-----+------------+----------+|1|张涵|123456||2|李尔丹|1235531||3|||4|安小超|12311q||5|韩小平|1阿斯达斯||6|-----+*order_goods表如果不存在则创建表order_goods(oidint(11)NOTNULL,uidint(11)NOTNULL,namevarchar(50)NOTNULL,buytimeint(11)NOTNULL)ENGINE=InnoDB默认字符集=utf8;+-----+------------+---------+|对象|uid|姓名|购买时间|+-----+------------+---------+|1|6|张涵|123456||2|1|1235531||3|2|李文凯|123455|+-----+------------+------------+*SQL的leftjoin,rightjoin,innerjoinleftjoin(左连接)返回值的区别所有记录包括左表中的所有记录和等于右表中连接字段的记录rightjoin(右连接)返回所有记录包括右表中等于左表中连接字段的所有记录记录的内连接(等价连接)只返回两张表中连接字段相同的行*内连接查询:selecttable,fielduid,username[as]usealias,selectorder_goodstable,field(同前))innerjoinTable(order_goods)oncondition=matchingconditionselectuser.uid,user.usernameasusername,order_goods.oid,order_goods.uid,order_goods.nameasshopnamefromuserinnerjoinorder_goodsonuser.uid=order_goods.uid;*外连接Leftjoin:selecttable(user)基于左表(user),显示,onconditionselect*fromuserleftjoinorder_goodsonuser.uid=order_goods.uid;*Outerjoin右连接:以右表为主显示检查SELECT*FROM`user`RIGHTJOINorder_goodsonuser.uid=order_g如果on的条件成立食物.uid;*子查询:子查询的关键字包括in、notin、=、!=、exists、notexists等select*fromuserwhereuidin(1,2,3);查询user表中uid1,2,3的数据select*fromuserwhereuidin(selectuidfromorder_goods);查询order_goods表中的uid和user表同user表,显示user表中的*交叉:CROSSJOINSELECT*FROMuserCROSSJOINorder_goods;自己查看显示4.npmikoarequiredtoinstallkoa等//使用asyncawait,异步节点版本必须在7.6.0以上npmikoa-routernpmikoa-bodyparser//分析中间件npmimysql5.目录结构6.config文件mysql.js数据库连接池constmysql=require('mysql');//创建连接池letpool=mysql.createPool({host:'127.0.0.1',//hostuser:'root',//mysql认证用户名password:'789456',//mysql用户密码port:'3306',//portdatabase:'Database'});letquery=(sql,values)=>{returnnewPromise((resolve,reject)=>{pool.getConnection(function(err,connection){if(err){reject(err)}else{connection.query(sql,values,(err,res)=>{如果(错误){拒绝ect(err)}else{resolve(res)}connection.release()})}})})}module.exports=query;7、路由user_router.js,这里需要调用servse文件中的user_servse.js方法constrouter=require('koa-router')();constuser=require('../servse/user_servse.js');constrouters=router.post('/add',user.selectData);模块.exports=路由器;8、路由index.js使用constrouter=require('koa-router')();constuser=require('./user_router.js');router.use(user.routes(),user.allowedMethods())module.exports=router;9.user_servse.js方法,以及sql语句,importmysql.jsconstquery=require('../config/mysql.js');//新建插入数据查询条件letinsert='INSERTINTO`goods`(`oid`,`uid`,`name`,`buytime`)VALUES(?,?,?,?)';constuser={asyncselectData(ctx){letdata=ctx.request.bodyletuserAddParams=[data.oid,data.uid,data.name,data.buytime];if(Object.keys(data).length>0){try{awaitquery(insert,用户添加参数);ctx.response.body={status:200,description:'ok',result:data}}catch(err){ctx.response.body={status:404}}}}module.exports=user;10.app.js启动文件constKoa=require('koa');constapp=newKoa();constbodyParser=require('koa-bodyparser');constrouters=require('./router/index');//配置ctx.body解析中间件app.use(bodyParser())//初始化路由中间件app.use(routers.routes()).use(routers.allowedMethods())app.listen(3000);喜欢学习资料里喜欢的童鞋1.http://mysql.phpxy.com/753142.http://www.manongjc.com/artic...3.http://www.runoob.com/mysql/m...