1.0.22 • Published 6 months ago

inventor v1.0.22

Weekly downloads
1
License
MIT
Repository
github
Last release
6 months ago

Inventor - 全栈型现代 web 框架

基于 mvc 架构模式,借鉴众多优秀 php 框架(CI, Laravel等)的设计方式,使用 koa2 作为 http 处理核心进行封装,路由则借鉴了 Laravel 强大的路由系统,加入路由组的概念,提供更合理的路由规划方式。web 端则采用 react 的同构开发方式。

路由

路由系统借鉴 Laraval 路由系统对 koa-router 进行了封装,加入了 group 和 resource 路由的概念更加强大易用。采用 restful api 路由定义方式,更有效的控制资源。路由默认采用控制器方法的定义方式(controler@action)。 resource 路由会预定义资源操作的5个路由

    router.resource('/resource', 'ResourceController')

等同于定义了如下5个路由:

    router.post('/resource', 'ResourceController@add')             // 新增资源
    router.delete('/resource/:id', 'ResourceController@remove')    // 删除资源
    router.put('/resource/:id', `ResourceController@update')       // 更新资源
    router.get('/resource', 'ResourceController@list')             // 资源列表
    router.get('/resource/:id', 'ResourceController@query')        // 资源详情

group 路由会自动为子路由添加路由前缀,以及一些公共选项(如 中间件,自定义参数) 即路由定义的第三个参数(支持 middlewares 和 locals)

    router.group('/group', (router) => {
        router.get('/test', 'TestController@list')
    }, { middlewares: [ DemoMiddleware ], locals: { routeId: 123 } })

这样子路由就都会应用中间件 DemoMiddleware 并且传递 locals 变量,route 数据会挂在 request 上面(获取 request.route)

控制器

控制器采用标准类定义方式,自动将 reqeust 和 response 挂在 this 上,可以直接使用,启用 request 和 response 支持的接口,可参考 express4 接口。

模型

框架将模型定义为IO适配层,分为2种(接口模型和DB模型) 其中接口模型需要用 interfaceModel 装饰器进行装饰,并且把接口配置传给装饰器,装饰器会根据接口配置自动生成请求代码。接口模型提供了 _packData 函数可复写,用来更改打包协议。

请求对象

框架前后端请求对 axios 进行一层封装,使其更加易用,并且自动注入请求序列号,便于追踪,支持请求竞态处理,和通用请求拦截器配置。框架将请求服务对象挂在了全局的 app().request 对象上,由于框架对于请求用 requestModel 进行了良好的封装,业务层代码不需要接触到该请求对象,各种请求参数都是通过配置文件及参数进行配置,简化了调用方式。

1.0.22

6 months ago

1.0.19

8 months ago

1.0.21

7 months ago

1.0.20

8 months ago

1.0.18

10 months ago

1.0.17

10 months ago

1.0.16

10 months ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

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.2

2 years ago

1.0.1

2 years ago

1.0.3

2 years ago

0.1.19

3 years ago

0.1.18

3 years ago

0.1.17

3 years ago

0.1.16

4 years ago

0.1.15

5 years ago

0.1.14

5 years ago

0.1.12

5 years ago

0.1.11

5 years ago

0.1.10

5 years ago

0.1.9

5 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.7-2

5 years ago

0.1.7-1

5 years ago

0.1.7-0

5 years ago

0.2.2-alpha.0

5 years ago

0.2.2-0

5 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.0.59

5 years ago

0.0.58

5 years ago

0.0.56

5 years ago

0.0.53

6 years ago

0.0.52

6 years ago

0.0.51

6 years ago

0.0.50

6 years ago

0.0.49

6 years ago

0.0.48

6 years ago

0.0.47

6 years ago

0.0.46

6 years ago

0.0.45

6 years ago

0.0.44

6 years ago

0.0.43

6 years ago

0.0.42

6 years ago

0.0.41

6 years ago

0.0.40

6 years ago

0.0.39

6 years ago

0.0.38

6 years ago

0.0.37

6 years ago

0.0.36

6 years ago

0.0.35

6 years ago

0.0.34

6 years ago

0.0.33

6 years ago

0.0.32

6 years ago

0.0.31

6 years ago

0.0.30

6 years ago

0.0.29

6 years ago

0.0.28

6 years ago

0.0.27

6 years ago

0.0.26

6 years ago

0.0.25

6 years ago

0.0.24

6 years ago

0.0.23

6 years ago

0.0.22

6 years ago

0.0.21

6 years ago

0.0.20

6 years ago

0.0.19

6 years ago

0.0.18

6 years ago

0.0.17

6 years ago

0.0.16

6 years ago

0.0.15

6 years ago

0.0.14

6 years ago

0.0.13

6 years ago

0.0.12

6 years ago

0.0.11

6 years ago

0.0.10

6 years ago

0.0.9

6 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago

1.0.0

8 years ago