Update middleware.md
This commit is contained in:
		
							parent
							
								
									26f0de0488
								
							
						
					
					
						commit
						882090fda5
					
				@ -1,29 +1,29 @@
 | 
				
			|||||||
# Middleware
 | 
					# Middleware
 | 
				
			||||||
 | 
					
 | 
				
			||||||
与 Koa 的中间件类似,但提供了更多增强的功能,可以方便的进行更多的扩展。
 | 
					It is similar to the middleware of Koa, but with more enhanced features for easy extensions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
中间件定义后可以在资源管理器等多处进行插入使用,由开发者自行控制调用的时机。
 | 
					The defined middleware can be inserted for use in multiple places, such as the resourcer, and it is up to the developer for when to invoke it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 构造函数
 | 
					## Constructor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**签名**
 | 
					**Signature**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* `constructor(options: Function)`
 | 
					* `constructor(options: Function)`
 | 
				
			||||||
* `constructor(options: MiddlewareOptions)`
 | 
					* `constructor(options: MiddlewareOptions)`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**参数**
 | 
					**Parameter**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 参数名 | 类型 | 默认值 | 描述 |
 | 
					| Name | Type | Default | Description |
 | 
				
			||||||
| --- | --- | --- | --- |
 | 
					| --- | --- | --- | --- |
 | 
				
			||||||
| `options` | `Function` | - | 中间件处理函数 |
 | 
					| `options` | `Function` | - | Handler function of middlware |
 | 
				
			||||||
| `options` | `MiddlewareOptions ` | - | 中间件配置项 |
 | 
					| `options` | `MiddlewareOptions ` | - | Configuration items of middlware |
 | 
				
			||||||
| `options.only` | `string[]` | - | 仅允许指定的操作 |
 | 
					| `options.only` | `string[]` | - | Only the specified actions are allowed |
 | 
				
			||||||
| `options.except` | `string[]` | - | 排除指定的操作 |
 | 
					| `options.except` | `string[]` | - | The specified actions are excluded |
 | 
				
			||||||
| `options.handler` | `Function` | - | 处理函数 |
 | 
					| `options.handler` | `Function` | - | Handler function |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**示例**
 | 
					**Example**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
简单定义:
 | 
					Simple definition:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```ts
 | 
					```ts
 | 
				
			||||||
const middleware = new Middleware((ctx, next) => {
 | 
					const middleware = new Middleware((ctx, next) => {
 | 
				
			||||||
@ -31,7 +31,7 @@ const middleware = new Middleware((ctx, next) => {
 | 
				
			|||||||
});
 | 
					});
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
使用相关参数:
 | 
					Definition with relevant parameters:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```ts
 | 
					```ts
 | 
				
			||||||
const middleware = new Middleware({
 | 
					const middleware = new Middleware({
 | 
				
			||||||
@ -42,15 +42,15 @@ const middleware = new Middleware({
 | 
				
			|||||||
});
 | 
					});
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 实例方法
 | 
					## Instance Methods
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `getHandler()`
 | 
					### `getHandler()`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
返回已经过编排的处理函数。
 | 
					Get the orchestrated handler functions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**示例**
 | 
					**Example**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
以下中间件在请求时会先输出 `1`,再输出 `2`。
 | 
					The following middleware will output `1` and then `2` when requested.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```ts
 | 
					```ts
 | 
				
			||||||
const middleware = new Middleware((ctx, next) => {
 | 
					const middleware = new Middleware((ctx, next) => {
 | 
				
			||||||
@ -68,35 +68,35 @@ app.resourcer.use(middleware.getHandler());
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
### `use()`
 | 
					### `use()`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
对当前中间件添加中间件函数。用于提供中间件的扩展点。示例见 `getHandler()`。
 | 
					Add a middleware function to the current middleware. Used to provide extension points for the middleware. See `getHandler()` for the examples.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**签名**
 | 
					**Signature**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* `use(middleware: Function)`
 | 
					* `use(middleware: Function)`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**参数**
 | 
					**Parameter**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 参数名 | 类型 | 默认值 | 描述 |
 | 
					| Name | Type | Default | Description |
 | 
				
			||||||
| --- | --- | --- | --- |
 | 
					| --- | --- | --- | --- |
 | 
				
			||||||
| `middleware` | `Function` | - | 中间件处理函数 |
 | 
					| `middleware` | `Function` | - | Handler function of the middleware |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `disuse()`
 | 
					### `disuse()`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
移除当前中间件已添加的中间件函数。
 | 
					Remove the middleware functions that have been added to the current middleware.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**签名**
 | 
					**Signature**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* `disuse(middleware: Function)`
 | 
					* `disuse(middleware: Function)`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**参数**
 | 
					**Parameter**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 参数名 | 类型 | 默认值 | 描述 |
 | 
					| Name | Type | Default | Description |
 | 
				
			||||||
| --- | --- | --- | --- |
 | 
					| --- | --- | --- | --- |
 | 
				
			||||||
| `middleware` | `Function` | - | 中间件处理函数 |
 | 
					| `middleware` | `Function` | - | Handler function of the middleware |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**示例**
 | 
					**Example**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
以下示例在请求处理是只输出 `1`,不执行 fn1 中的 `2` 输出。
 | 
					The following example will only output `1` when requested, the output of `2` in fn1 will not be executed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```ts
 | 
					```ts
 | 
				
			||||||
const middleware = new Middleware((ctx, next) => {
 | 
					const middleware = new Middleware((ctx, next) => {
 | 
				
			||||||
@ -118,41 +118,41 @@ middleware.disuse(fn1);
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
### `canAccess()`
 | 
					### `canAccess()`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
判断当前中间件针对特定操作是否要被调用,通常由资源管理器内部处理。
 | 
					Check whether the current middleware is to be invoked for a specific action, it is usually handled by the resourcer internally.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**签名**
 | 
					**Signature**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* `canAccess(name: string): boolean`
 | 
					* `canAccess(name: string): boolean`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**参数**
 | 
					**Parameter**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 参数名 | 类型 | 默认值 | 描述 |
 | 
					| Name | Type | Default | Description |
 | 
				
			||||||
| --- | --- | --- | --- |
 | 
					| --- | --- | --- | --- |
 | 
				
			||||||
| `name` | `string` | - | 操作名称 |
 | 
					| `name` | `string` | - | Name of the action |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 其他导出
 | 
					## Other Exports
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### `branch()`
 | 
					### `branch()`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
创建一个分支中间件,用于在中间件中进行分支处理。
 | 
					Create a branch middleware for branching in the middleware.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**签名**
 | 
					**Signature**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* `branch(map: { [key: string]: Function }, reducer: Function, options): Function`
 | 
					* `branch(map: { [key: string]: Function }, reducer: Function, options): Function`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**参数**
 | 
					**Parameter**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 参数名 | 类型 | 默认值 | 描述 |
 | 
					| Name | Type | Default | Description |
 | 
				
			||||||
| --- | --- | --- | --- |
 | 
					| --- | --- | --- | --- |
 | 
				
			||||||
| `map` | `{ [key: string]: Function }` | - | 分支处理函数映射表,键名由后续计算函数在调用时给出 |
 | 
					| `map` | `{ [key: string]: Function }` | - | Mapping table of the branch handler function, key names are given by subsequent calculation functions when called |
 | 
				
			||||||
| `reducer` | `(ctx) => string` | - | 计算函数,用于基于上下文计算出分支的键名 |
 | 
					| `reducer` | `(ctx) => string` | - | Calculation function, it is used to calculate the key name of the branch based on the context |
 | 
				
			||||||
| `options?` | `Object` | - | 分支配置项 |
 | 
					| `options?` | `Object` | - | Configuration items of the branch |
 | 
				
			||||||
| `options.keyNotFound?` | `Function` | `ctx.throw(404)` | 未找到键名时的处理函数 |
 | 
					| `options.keyNotFound?` | `Function` | `ctx.throw(404)` | Handler function when key name is not found |
 | 
				
			||||||
| `options.handlerNotSet?` | `Function` | `ctx.throw(404)` | 未定义处理函数时的处理 |
 | 
					| `options.handlerNotSet?` | `Function` | `ctx.throw(404)` | The function when no handler function is defined |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**示例**
 | 
					**Example**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
用户验证时,根据请求 URL 中 query 部分的 `authenticator` 参数的值决定后续需要如何处理:
 | 
					When authenticating user, determine what to do next according to the value of the `authenticator` parameter in the query section of the request URL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```ts
 | 
					```ts
 | 
				
			||||||
app.resourcer.use(branch({
 | 
					app.resourcer.use(branch({
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user