Koa2 Starter
基于 Koa2 构建的快速开始 Web 脚手架。
目录
特点
- 基于 Koa2 的 Web 框架
- 集成 MongoDB 数据库
- 集成 MySQL 数据库
- 集成 Redis 数据库
- 集成 JOI 路由验证
- 集成 koa-session
- eslint、prettier 代码规范
- ejs 模板引擎
- 支持跨域、文件静态、多路由声明
- 支持测试覆盖
- 简单的文件存储服务(集成了阿里云)
运行
- config下,创建 config-[name].js 配置文件;
- 安装项目依赖,启动项目。
npm ci
# 开发启动
npm run watch
# 生产启动
npm start
# or
export NODE_ENV=production && node index.js
# 测试覆盖
npm run cov
接口
已经实现的接口,已梳理为接口文档,托管在APIPOST,在线查看。
结构
├── .vscode // vscode 配置
├── app.js // app入口文件
├── common // 公共库
├── config // 应用配置
├── docker-compose // Dokcer 部署示例
├── controller // 路由控制器
├── index.js // 启动文件
├── lib // 工具库
├── logs // 日志文件夹
├── middleware // 中间件
├── test // 测试覆盖
├── models // db model
├── public // 静态资源文件夹
├── router // 路由
├── schema // 验证规则
├── service // 应用业务
└── views // 模板
部署
Compose 部署
可以通过配置 Docker-Compose 结合 git-webhook 完成自动化部署,可看示例配置。
Docker 启动
也可以通过 Docker 启动,需要注意的是,需要挂载项目文件到容器中,否则无法启动。
docker run -v "$(pwd)":/app -e NODE_ENV=production --name my-node-app -p 81:3000 funnyzak/java-nodejs-python-go-etc node /app/index.js
以上是生产环境的启动命令,因此需要修改 config/config-production.js
配置文件。
-v "$(pwd)":/app
将当前目录映射到容器的/app
目录。-e NODE_ENV=production
设置环境变量NODE_ENV
为production
。--name my-node-app
指定容器的名称为my-node-app
。-p 81:3000
将容器的3000
端口映射到主机的81
端口。funnyzak/java-nodejs-python-go-etc
是您要使用的镜像名称。node /app/index.js
是要在容器中执行的启动命令。
参考
Contribution
If you have any questions or suggestions, please feel free to open an issue or pull request.
License
MIT License © 2021 funnyzak