EggJS中间件
由于EggBornJS后端基于EggJS,因此可以直接使用EggJS生态的中间件,请参考:Egg中间件
EggBornJS系统中间件
1. egg-born-backend
EggBornJS系统中间件的实现源码均位于npm包:egg-born-backend
名称 | 是否全局中间件 | 说明 |
---|---|---|
instance | 是 | 基于子域名创建当前实例信息,并保存为ctx.instance |
- instance
通过instance
中间件可以支持多实例/多域名/多租户
特性。参见:多实例/多域名/多租户
EggBornJS模块中间件
1. a-base
名称 | 是否全局中间件 | 说明 |
---|---|---|
inner | 否 | 将API接口限定为内部访问 |
test | 否 | 将API接口限定为只能在测试环境 中访问 |
transaction | 否 | 指定API接口开启数据库事务 |
cors | 是 | 实现后端跨域 |
auth | 是 | 自动解析当前用户信息,并将用户信息写入ctx.state.user |
right |
- inner
后端API路由
可通过ctx.performAction
调用其他后端API路由
,这称之为内部访问
后端API路由
指定中间件inner
就可以限定此路由只能被内部访问
。如果前端访问此API接口,就会自动抛出403错误
- 1{ method: 'post', path: 'version/update', controller: 'version', middlewares: 'inner' }
中间件
inner
也可看作是API授权策略体系之一
- test
后端API路由
指定中间件test
,可以限定此路由只能在测试环境
中访问。在开发测试用例时,可以通过此中间件提供一些API接口,仅供测试环境使用
- 1{ method: 'post', path: 'version/test', controller: 'version', middlewares: 'test' }
中间件
test
也可看作是API授权策略体系之一
- transaction
后端API路由
指定中间件transaction
,可以指定此API路由
开启数据库事务
。参见:Transaction数据库事务
- 1{ method: 'post', path: 'test/echo', controller: 'test', middlewares: 'transaction'}
- cors
由于cors是全局中间件,因此,后端跨域的支持已经准备就绪,我们只需提供相应的配置信息即可。参见:跨域配置 (CORS)
- auth
auth作为全局中间件,自动解析当前用户信息,并将用户信息写入ctx.state.user
,从而方便我们在业务代码中直接访问当前用户信息。参见:用户操作
- right
(未完待续)
评论: