1.0.10 • Published 2 years ago

koaaaa v1.0.10

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

Koaaaa

一个随便封装的多进程 koa 框架

1.项目结构

.
├── config
│   ├── default.js
│   ├── pron.js
│   └── dev.js
├── middleware
│   └── ttt.js
├── tools
│   └── redis.js
├── controller
│   └── testController.js
├── service
│   └── test.js
├── app.js
└── package.json

一下目录均不支持嵌套级别

  • config 配置目录「必需」,会自动读取改目录下的所有文件,配置文件以环境名命名例如:pron,dev,test, default 为默认配置,会与其他配置合并

  • middleware「非必需」 中间件目录,目前暂时不支持中间件顺序设定,中间件暴露为标准的 koa 中间件 async (ctx, next) => Promise 模式

  • tools「非必需」 工具目录,以 (app) => void 方式暴露挂载函数,函数内自己手动往某个地方挂载工具,有 app.tools 对象通常可以挂载到这上面

  • controller 控制器目录「必需」,舍弃了 router 配置,每个控制器代码会传入 app, router, tools 对象 例:

module.exports = (app, router, tools) => {
  router.get('/test', async (ctx) => {
    try {
      ctx.success({ id: app.tools.generateId() })
    } catch (err) {
      console.error(err)
      ctx.error(err)
    }
  })
}
  • service 服务目录「非必需」,自动加载并实例化服务对象,会在构造的时候传入 app 对象,对象会注入到 app.service 对象里面,会忽略 Service 后缀,例如下面例子的 TestService 可以使用 app.service.test 的方式调用

例:

module.exports = class TestService {
  constructor(app) {
    this.app = app
    this.tools = app.tools
  }
}

API

type app: Koa && {
  config: object,
  tools: {
    generateId: () => bigint
  },
  logger: {debug, info, error}// winston
  service: object,
}
1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago