一个完整的 koa2 typescript 开发框架
nodejs > 7.6 开发工具:vscode 最佳
git clone https://github.com/githbq/hbq-koa2-base.git
yarn
// or
npm i
# 直接由ts-node引导入口文件无需编译,代码变更时由 `nodemon` 重新启动服务
npm start
路由目录: src/routers/
- 除
help
以外目录都会自动识别路由 - 如
src/routers/demo/test.ts
- 对应路径
http://localhost:6001/demo/test/[route-name]
- 对应路径
- 你可以添加自定义文件或者文件夹,会自动以目录层级作为路由路径进行注册
业务逻辑目录: src/controllers/
- 该目录支持多层级,与路由目录一一对应
- 架构会自动将该
src/controllers/demo/test.ts
导出的对象,注入到与之相对应的src/routers/demo/test.ts
导出的函数参数中:
// src/controllers/demo/test.ts
export default ({ debug, logger }) => {
return {
async hello(){
return 'hello world'
}
}
}
// src/routers/demo/test.ts
export default (router, { controller }) => {
router.get('/hi', async (ctx, next) => {
ctx.body = controller.hello()
// 访问: http://localhost:6001/demo/test/hi
// 响应: 'hello world'
})
}
npm run pm2
npm run pstart
npm start
执行的是ts-node
引导src/index.ts
不需要再监听ts文件实时编译- 默认不主动链接 mongodb ,对应配置如下
/src/common/configs/appConfig.ts
- useMongodb: false,
- mongodb: 'mongodb://127.0.0.1:17951/koa2Base',
NODE_ENV
环境变量有两个值development
用于标识当前是开发环境test
用于标识当前是测试环境production
用于标识当前是生产环境(正式上线环境)
CONFIG_MODE
用于选择启用配置文件/src/common/configs/appConfig-${CONFIG_MODE}.ts
- 推荐使用 vscode 开发工具
- 快捷键
ctrl
+,
- 搜索
自动附加
或者autoAttach
设置为true npm run debug
├── README.md
├── __tests__
| ├── index.test.ts
| └── readme.md
├── build
| ├── app.js
| ├── app.js.map
| ├── common
| ├── controllers
| ├── index.js
| ├── index.js.map
| ├── routers
| └── server
├── jest.config.js
├── package.json
├── public
| ├── common
| ├── favicon.ico
| ├── index.html
| ├── libs
| └── pages
├── run.js
├── src
| ├── app.ts
| ├── common
| ├── controllers
| ├── globals.d.ts
| ├── index.ts
| ├── routers
| ├── server
| └── shims.d.ts
├── temp
| └── logs
├── temp.upload
| └── 1
├── tsconfig.json
├── tslint.json
├── upload
├── views
| ├── ejs
| └── pug
└── yarn.lock