littlebot
Published on 2025-04-11 / 2 Visits
0

【源码】基于 Egg.js 和 TypeScript 的装饰器路由管理插件

项目简介

本项目名为 @zkboys/egg-route-decorator,是一个基于 Egg.js 和 TypeScript 的装饰器路由管理插件。它借助装饰器的方式,简化了 Egg.js 项目里路由、中间件、参数校验以及 Swagger 文档的定义,有效提升了开发效率与代码的可读性。

项目的主要特性和功能

  • 路由定义:可通过装饰器在控制器中直接定义路由,无需手动编写路由文件。
  • 中间件支持:支持在类级别和方法级别添加中间件,灵活掌控请求处理流程。
  • 参数校验:提供 headerparampathquerybody 等装饰器,用于请求参数的校验。
  • 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-legacybabel-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】