Koa2&mySQL&PM2 搭建后端服务

来源:QQ快报
责任编辑:鲁晓倩
字体:

利用 Express 中间件功能2113实现登录拦截。如果用户5261请求的路径需要登录后才能访问4102,将用户重定向到1653登录页面,登录成功后将用户重定向到原始请求路径。设置应用中间件,监控所有请求1234567891011121314151617181920212223 // app.jsapp.use(function (req, res, next) { if (req.session.user) { // 判断用户是否登录 next(); } else { // 解析用户请求的路径 var arr = req.url.split('/'); // 去除 GET 请求路径上携带的参数 for (var i = 0, length = arr.length; i < length; i++) { arr[i] = arr[i].split('?')[0]; } // 判断请求路径是否为根、登录、注册、登出,如果是不做拦截 if (arr.length > 1 && arr[1] == '') { next(); } else if (arr.length > 2 && arr[1] == 'user' && (arr[2] == 'register' || arr[2] == 'login' || arr[2] == 'logout')) { next(); } else { // 登录拦截 req.session.originalUrl = req.originalUrl ? req.originalUrl : null; // 记录用户原始请求路径 req.flash('error', '请先登录'); res.redirect('/user/login'); // 将用户重定向到登录页面 } }www.book1234.com防采集请勿采集本网。

嘘!啰嗦一句话。

作为一名前端开发工程师,我们平常和后端接触最多的就是接口的对接。那么后端同事是怎么写一个接口来给到我们前端的同学去获取数据库数据并做一些花里胡哨的功能呢?今天我们就用来搭建一个后端服务器,实现自己写的中国梦!

前言

对于部分前端开发的小伙伴来说,后端开发可能是一个陌生的领域,毕竟现在前端的工作繁重(我哪有时间去学习后端开发鸭!)。幸好有了这个利器,让我们可以在现有的前端技能基础上去实现一些后端的技术,这也降低了我们入门后端开发的门槛。

今天给大家介绍的这个小可(dong)爱(xi)就是我通过最近一个项目(这个项目是由koa2+mysql + pm2作为后端服务)中抽离出来的一套Koa2 & MySQL & PM2基础模板。目的就是让我们的前端小伙伴可以直接使用它去开发接口,实现自己的梦想。

教程目前考虑在windows环境下使用pm2来启动服务,且已环境进行测试

目标

通过这一套基础模板,快速开发,实现前端后端自我完成。也就是说,你把代码克隆下来之后,以学习为目的的话,你只需要开始写api就行了,一些简单的配置我都配置好了,你只要按照以下步骤去操作,便可以自己写api,自己对接接口,然后就自己怼自己了。

使用技术

Koa2

MySql(请确保你的windows已经安装了,并且可以正常启动)

PM2 (请确保你的windows已经安装了,并且可以正常启动)

软件安装教程

MySql安装:

安装或者这两个神器就会自动帮你安装MySql,基本上就满足你的学习开发了,如果你是要在生产环境使用的话,我相信你的环境已经具备所需的软件了

上面教程是我上一次写的一篇文章(写的有点烂,我都看不下去了,哈哈,不过的安装非常的容易,大家可以看看,再不然也可以百度找一下相关完整的教程)

代码结构

环境配置

使用这一套基础模板之前,你需要确保你的电脑安装了

创建数据库

代码文件中我提供了建表的语句,你需要在你的电脑中先创建一个名为的数据库,创建之后执行代码文件中的文件即可

代码安装

启动服务

使用 来启动项目,当出现下面截图一样内容的时候,证明你的项目已经正确启动了。

这个时候你可以使用进行访问项目(关于端口配置,我会在下面进行解释)

配置说明

项目的主要运行流程为:通过启动项目之后(也可以使用),会通过当前启动的环境来配置不同的参数(引入配置文件),从而使用不同的以及参数配置(配置在文件夹中,下面详细说)

app.js配置引入

启动环境配置

PM2配置:

环境参数配置:

通过配置不同的后,当我们通过,会根据我们在中配置的来确定当前是什么运行环境,并通过中来使用不同的配置端口以及参数

数据库配置

配置文件路径:

路由配置

路由配置:

数据库模型(Model)创建

主要是告诉如何映射数据库表。

sequelize.define(modelName, attributes, [options]) -> Modal这个实例方法用于定义一个新的(模型)。相当于数据库中的表,该对象不能通过构造函数实例化,而只能通过或者方法创建

第二个参数是指定列名和数据类型,如果是主键,需要更加详细的指定。第三个参数是额外的配置

具体的配置以使用可以参考中文文档进行学习

在中写的代码其实就是和我们在中编写的表结构一样的,只不过是通过不同的语言来进行表达而已,也就是你如果在mysql中新增表或者字段,那么你也需要在相对应的中去更新相关的字段。也有插件(中间件)可以自动映射数据库表结构到模型中,但是第一次使用发现有点小问题,所以我就没使用了。

写接口啦!

接口编写完成,当我们访问接口的时候会在中找到对应的路由名字,接着访问我们对应的控制器接口地址,进行业务的处理

统一包装接口映射

控制器:

截止目前,通过上面的一系列配置以及代码的cv之后,我们就可以通过来测试接口是否成功啦!

控制器controller和service层分离

当我们业务比较复杂的时候,我们并不希望处理数据库的逻辑和我们的普通业务逻辑放在一起,这个时候我们可以把处理数据库的操作分离出来放在一个层,然后控制器就只是处理我们的业务逻辑

具体操作:通过新增文件夹,再从文件夹中新建不同的模块文件,例如,同时把中和数据库操作相关的操作抽离到中,这样子我们就可以清晰知道我们各个业务层所做的事情,也方便我们进行维护。

PM2更多操作

写在最后

以上文章便是我在这两天在一个项目中抽离出来的一套代码模板,大家只要把代码克隆下来并保证电脑上已经安装了所需软件,并可以进行项目的启动和编写api了。

这是一篇入门级别的简单分享文章,如有哪里有错误,希望您可以帮忙提出纠正,非常感谢。

如果你觉得还可以的话,希望您可以给我一个星星哦,十分感谢

<form action="#" method="post"><input type="text" name="key"><input type="submit" name="sub" value="提交2113"></form><?phpecho $_POST["key"];//这就是你提5261交的内4102容!1653?>内容来自www.book1234.com请勿采集。

声明:以上内容并不代表本网赞同其观点。如有任何问题,请与不良与违法信息举报中心联系:513175919@qq.com。

www.book1234.com true http://www.book1234.com/q/20200915/20200915A00TFO00.html report 71831
娱乐时尚
  • koa2 mysql 封装传参问题,{value=key} 如何传参?
  • nodejs mysql koa 怎么做登录
  • 如何在本地用koa和mysql写一个界面
  • mpvue+koa+mysql小程序开发,从数据库中取出的数据...
  • 北京web前端报培训班需要学习多久?
  • 历史文化
    真视界
    旅游美食
    精彩图文
    我爱我车
    母婴健康
    关于本站 | 广告服务 | 手机版 | 商务合作 | 免责申明 | 招聘信息 | 联系我们
    Copyright © 2004-2018 book1234.com All Rights Reserved. 布客网 版权所有
    京ICP备10044368号-1 京公网安备11010802011102号