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

【进阶篇】koa+Mysql全栈之旅

时间:2023-04-03 12:02:02 Node.js

背景继续上一篇【轻松篇】从前端到全栈,从这里开始完成对云服务器的初步认识,以及nginx的配置,接下来是MySQL的安装,建表操作,使用Node.js框架Koa进行简单的数据增删改查功能。过程比较长,但是按照下面的步骤还是比较容易的。MySQL安装?登录云服务器,进入linux控制台,执行以下命令行进行安装//1.下载并安装wgethttp://repo.mysql.com/mysql-community-release-el7-5.noarch.rpmrpm-ivhmysql-community-release-el7-5.noarch.rpmyumupdateyuminstallmysql-server//2。权限设置chownmysql:mysql-R/var/lib/mysql//3.初始化mysqld--initialize//4.启动systemctlstartmysqld//5.查看MySQL运行状态systemctlstatusmysqldMysql安装后做什么~Mysql安装成功后,默认的root用户密码为空,可以使用以下命令创建root用户密码[root@host]#mysqladmin-urootpassword"new_password";//连接Mysql服务器[root@host]#mysql-uroot-pEnterpassword://loginmysql-uroot-p//输入密码后,回车exit或quit时可能遇到的问题注销//这是因为root没有权限,可以把root改成ip或者设置mysql-u175.23.23.23-p[root@VM-0-5-centosbin]#mysql-uroot-p输入密码:ERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpassword:YES)解决办法:找到my.conf文件,使用vimmy.conf编辑文件(路径:etc/my.cnf).在任意一行添加skip-grant-tables,然后修改密码,然后使用命令行servicemysqldrestart重启mySQL。成功后记得删除skip-grant-tables。建立一个数据库,现在你需要对一个列表进行增删改查。假设有一个博客系统,对博客列表进行操作。数据库的表结构如下:idtitlecontentimgaauthorlikeNumcreatedAtupdatedAt1articletitlecontentcoverimagenumberofauthorlikescreationtimeupdatetime//安装以上步骤进入云服务控制台,然后登录你的MYSQL//1.创建数据库测试(所有命令行以分号结尾)CREATEDATABASEtest;//2.创建博客表DROPTABLEIFEXISTS`blog`;CREATETABLE`blog`(`id`int(11)NOTNULLAUTO_INCREMENT,`title`varchar(255)DEFAULTNULL,`content`text,`img`varchar(255)DEFAULTNULL,`author`varchar(255)DEFAULTNULL,`likeNum`varchar(255)DEFAULT'0',`createdAt`datetimeDEFAULTNULL,`updatedAt`datetimeDEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=2默认字符集=latin1;可以执行下面的命令行查看表的情况,到这里去数据库就完事了。以上都是命令行数据库操作,当然还有很多图形界面工具可以使用,比如navicatpremium,大家可以自行搜索这个使用koa来编写服务器端应用程序Koa是一个新的web框架,由Express背后的原始团队构建,致力于成为web应用程序和API开发领域中更小、更具表现力、更健壮的基石。通过使用async函数,Koa帮助你丢弃回调函数,并健壮地增强错误处理。初始化koa项目//找一个空文件夹npminit//一路输入npmikoa//新建一个app.js,内容如下constKoa=require('koa')constapp=newKoa()app.use(async(ctx)=>{ctx.body='HelloWorld'})app.listen(3000)//运行nodeapp.jsCRUDAPI安装插件npmikoa-bodyparsersequelizekoa-routermomentmysql2--saveDatabaseconfiguration(新建utils文件夹下的sequelize.js)constSequelize=require('sequelize')//传入参数数据库名,用户名,密码constsequelize=newSequelize('test','root','password',{host:'111.111.111.111',//数据库IP地址dialect:'mysql',operatorsAliases:false,pool:{max:5,min:0,acquire:30000,idle:10000}})sequelize.authenticate().then(()=>{console.log('MYSQL连接成功...')}).catch(err=>{console.error('连接失败:',err)})//自动建表根据模型sequelize.sync()module.exports=sequelizerouter//routerconstnginxApi='/api'constrouter=require('koa-router')()//blogconstBlog=require('../controller/blog')router.get(`${nginxApi}/blog/list`,Blog.list)router.post(`${nginxApi}/blog/create`,Blog.create)router.post(`${nginxApi}/blog/destroy`,Blog.destroy)router.get(`${nginxApi}/blog/details`,Blog.details)router.post(`${nginxApi}/blog/update`,Blog.update)//404router.get('/404',async(ctx,next)=>{ctx.body='PageNotFound'上下文.status=404awaitnext()})//导出模块.exports=routercontroller![](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/72a722e2ca564e888dd9f4cb6cac1228~tplv-k3u1fbpfcp-watermark.image)看效果首先创建一条数据然后查询部署服务器代码先把代码放到服务器上,配置nginx。方法在之前的【易文】从前端到全栈。你可以从这里学习//nginx添加配置location/api{proxy_passhttp://127.0.0.1:8989;}//installforevernpminstallforever-g#installforeverstartapp.js#startapplicationforeverstopapp.js#closeapplicationforeverrestartall#重启所有应用程序。最后这里大概有一个简单的服务器,附上代码地址。https://gitee.com/wisdom_QQ/koa记得点赞哦!!!!!!!!!!!记得点赞哦!!!!!!!!!!!