使用Nodejs中的express以及相关插件快速构建后端服务
Refer
Node.js 系列教程之 Express_哔哩哔哩_bilibili
出发点
为了能够按自己想法快速开发后台相关接口为前端学习做基础
整体概览
在这个Demo中,当请求发送到服务端,服务端会交由router目录中的index.js进行处理,index.js(里面配置着转发的相关路径)会根据请求路径,将请求转发到router目录下的不同控制路由(可能会交给articles/profile/tag/user去处理),在进一步的路由控制下,可以根据不同的请求类型和请求路径做进一步的细分,同时在这里还控制着,是否会进行auth校验(如当获取当前用户时,就需要通过auth校验,只有当auth校验通过才会进行下一步的转发),当请求允许继续被转发,请求会进入对应的Validator(Validator也可以根据需求去提供不同的Validator,让请求进入不同Validator,同样如果Validator不通过,那么仍然不会进行下一步的转发),当前面的校验都通过时,就会交给Controller进行具体的操作,我们会在Controller调用具体的数据层方法(包括对数据库的操作)去完成具体的需求。
一般来说我们会将一些常用的配置文件进行统一存储,在这个Demo中存放在/config/config.defalut.js。这样做可以方便我们部署到服务端时,快速修改我们的配置,可以方便我们进行后续的维护操作。
/model中,index.js做了数据库的连接,同时为不同的类型数据模型,做了索引,我们可以根据具体的需求,在对应的模型中增加或删除字段,也可以通过base-model.js提供共同的字段(在这个Demo中是创建事件和更改事件)
/util中由jwt和md5他们分别为用户的校验和数据的md5加密提供支持(md5是util包提供不需要做额外的导入)
Validator需要express-validator包的支持,为了实现分类处理,也需要引入中间件validate.js
中间件error-handler.js做了err处理,会以err作为response返回给用户
package.json是整个nodejs项目的包信息,只要这个包信息存在,哪怕包被删除了,我们只要执行
1 | npm install |
就能够恢复包(依赖),因为里面也包含版本信息,所以能够还原当时的环境
有条理的进行分类降低了维护的难度,让我们能够更有针对性的进行代码修改。
使用到的包及其对应的作用
app.js
moudle | 作用 |
---|---|
express | 提供服务端框架 |
morgan | 提供日志服务 |
cors | 跨端服务(让不同的设备都能够使用API) |
…