使用 node 做 server 的基础脚手架(基于 egg.js)
使用 node 做 server 的基础脚手架(基于 egg.js)
Node.js 其它杂项
共1Star
详细介绍
Node Demo
🛠
开发流程
本地开发
项目基于 node v8.11.3 开发,如果跑起来有问题,可以尝试下切换版本 :)
# 使用 nvm
$ nvm use
安装 mysql 并建立数据库
brew install mysql # macOS
brew service start mysql
# sql
create database `node-demo-dev`;
create database `node-demo-unittest`;
安装 node 依赖
npm i
执行 migration 执行数据变更
# for develop
npm run sequelize -- db:migrate
启动项目
npm run dev
测试
建立数据库
# for unittest
NODE_ENV=test npm run sequelize -- db:migrate
运行测试
npm run test-local
运行特定用例文件
TESTS=test/x.test.js npm run test-local
数据库测试使用 [factory-girl]: https://github.com/aexmachina/factory-girl 快速创建数据
部署到 dev
上线
📝
项目相关
指令
- 使用
npm run lint
来做代码风格检查。 - 使用
npm test
来执行单元测试。 - 使用
npm run autod
来自动检测依赖更新,详细参见 autod 。
相关依赖
所有插件依赖相关的,可以查找通过查找代码片段获取,如果不需要使用,直接删去即可。结构如下:
// plugins: egg-xxx
or:
/* ----- plugins: egg-xxx begin ----- */
xxxxx
/* ----- plugins: egg-xxx end ----- */
目前项目的依赖如下:
- 数据校验: egg-validate
- [] 数据库
- [] simple: egg-mysql, 如需使用可参照官方文档 https://eggjs.org/zh-cn/tutorials/mysql.html 配置,或者参考
baidu/hi/node-robot-server
项目。 - use ORM: egg-sequelize, mysql2。使用 sequelize-cli 来管理数据库的接口变更 & 数据迭代。
- [] simple: egg-mysql, 如需使用可参照官方文档 https://eggjs.org/zh-cn/tutorials/mysql.html 配置,或者参考
- api 接口: egg-graphql, restful
- [] 消息队列: kafka
✨
附: 如何优雅的开发&提交代码
-
项目使用了 prettier 来做一些规范约定,建议对编辑器安装相关插件,便于自动格式化代码,统一项目整体的风格。
-
强烈建议使用主流的 约定式
comment message
格式<type>(<scope>): <subject> <body> <footer>
-
使用
npm run commit
命令提交,或者全局安装 commitizen。而不是直接使用git commit -m "xxx"
- 会被
changelog
记录的 type 有:feat(新功能)
,fix(修复 bug)
,perf(性能优化)
,revert(代码回滚)
- 会被
-
提交代码的时候在
commit message
中带上issue
卡片信息。 -
上线的时候对版本进行更新。使用
npm version patch
ornpm version xxx
,而不只是直接提交完代码就去发单。更新版本会自动执行以下内容:- fecs check --level 2
- run test script
- create CHANGELOG
-
3 Star
-
4 Star
-
18 Star
-
1 Star
-
3 Star
-
11 Star
-
32 Star
-
6 Star
-
32 Star