一.背景
结合目前流行的node、Express、Koa、egg三种框架。之前用的是Express,后来发现回调杀了我,真的很无奈。终于有一天我尝试Koa进行开发,觉得太舒服了。ES6语法支持很多,同步模式也很到位。但是,在学习koa的过程中,我发现我知道了所有的基础知识,并按照官方文件进行了一遍,但我发现没有办法开始。感觉在开发过程中,层次感不明显,业务逻辑简单好,更多的烦恼会随之而来。核对数据后,有一个koa脚手架叫koa-generator。立即试用后发现不是我想要的模板。好像github已经2年没有维护了,koa2的一些新功能也没有加入,感觉有点过时。然后,结合别人的车型,我们也避免了以后做轮子的次数太多。为Koa项目写一个初始模板。这个模板的主要功能集成了Logger、Router、JWT、Mongoose、redis、PM2等模块,以及一些中间件集合。这个模板对于简单的后台项目来说基本够用了,不考虑高并发处理,后面还会继续改进。对于初学者,可以快速开发新项目。开始之前,好好看看下面的解读。
二、目录结构
以下目录是这个模板的基本目录结构,后面几章会介绍每个目录的配置,这样大家在开发的时候就可以对项目有一个清晰的结构,很容易定位问题。
.gitignore //忽略文件配置app.js //应用程序入口config.js //公共配置文件ecosystem.config.js //pm2配置文件package.json //依赖文件配置 The README.md文档routes //路由| private.js //检查接口| public.js //暴露接口models//数据库配置和模型|index . js//数据库配置| \\\\\\\\\\\\\\\\\\\\\\\ 响应和异常处理中间件logs //日志目录|KOA-template . log-2019-05-28 -lib//tool库| -error.js//exception处理| mongoDB.js //mongoDB配置-controllers//operation数据库和业务逻辑登录| test.js//test-bin//启动目录| www //启动文件配置
Bin文件
bin文件目录中只有一个文件,那就是www,因为我们的后端项目基本上都是在Linux上运行的。其实我们不用担心文件的后缀,只需要知道文件是可执行文件还是可执行文件。这份文件有什么用?其实这个文件是用来启动我们整个后端程序的,也就是我们前端的集成运行环境。我们可以在这个文件中运行、关闭和重启。基本代码如下:
#!/usr/bin/env节点/** *模块依赖关系。*/const app=require('./app ')const http=require(' http ')const config=require('./config')/** *从环境中获取端口并存储在Express中。*/const port=normalizePort(process . env . port | | config . port)//app . set(' port ',port);/** *创建HTTP服务器。*/const server=http . createserver(app . callback())/* * *在所有网络接口上侦听提供的端口。*/server . listen(port)server . on(' error ',onError)server.on('listening ',onListening)/** *将端口规范化为数字、字符串或false。*/functi