项目简介
本项目名为 @zkboys/egg-route-decorator
,是一个基于 Egg.js 和 TypeScript 的装饰器路由管理插件。它借助装饰器的方式,简化了 Egg.js 项目里路由、中间件、参数校验以及 Swagger 文档的定义,有效提升了开发效率与代码的可读性。
项目的主要特性和功能
- 路由定义:可通过装饰器在控制器中直接定义路由,无需手动编写路由文件。
- 中间件支持:支持在类级别和方法级别添加中间件,灵活掌控请求处理流程。
- 参数校验:提供
header
、param
、path
、query
、body
等装饰器,用于请求参数的校验。 - Swagger 文档生成:支持通过装饰器生成 Swagger 文档,便于 API 文档的管理和维护。
- 灵活配置:支持自定义路由前缀、默认请求方法等全局配置。
安装使用步骤
假设用户已经下载了本项目的源码文件,可按以下步骤进行安装和使用:
1. 安装插件:
shell
npm install @zkboys/egg-route-decorator --save
2. 启用插件:
在 config/plugin.js
中启用插件:
javascript
exports.routeDecorator = {
enable: true,
package: '@zkboys/egg-route-decorator'
}
3. 配置装饰器支持:
如果项目使用的是 JavaScript 而不是 TypeScript,需要手动安装 babel-plugin-transform-decorators-legacy
和 babel-plugin-transform-object-rest-spread
,并在项目中添加 .babelrc
文件:
json
{
"plugins": [
"transform-decorators-legacy",
"transform-object-rest-spread"
]
}
4. 使用装饰器定义路由:
在控制器中使用装饰器定义路由:
```typescript
import { Controller } from 'egg';
import { route, get } from '@zkboys/egg-route-decorator';
@route('/users')
export default class UserController extends Controller {
@get('/')
async index() {
return { message: 'Hello, User!' };
}
}
5. **配置中间件和参数校验**:
可以在类级别或方法级别添加中间件和参数校验:
typescript
@route('/users')
@middleware(mi('UserController'))
export default class UserController extends Controller {
@get('/:id')
@param({ id: { required: true, type: 'number' } })
async show() {
const { id } = this.ctx.params;
return { id, name: 'User' };
}
}
```
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】