egg-router-auto

2.0.3 • Public • Published

egg-router-auto

根据 controller 文件注释自动生成路由

NPM version build status Test coverage David deps Known Vulnerabilities npm download

开启插件

// config/plugin.js
module.exports = {
  // ...
  routerAuto: {
    enable: true,
    package: 'egg-router-auto',
  },
  // ...
}

详细配置

// config/plugin.js

module.exports = (appInfo) => {
  const config = (exports = {})

  // 路由生成基本路径
  //  ''   => /home
  // 'api' => /api/home
  // 'test' => /test/home
  config.routerAuto = {
    baseApi: 'api',
  }
}

使用

  • 使用 @controller 设置 路由名称
@controller home
  • 使用 @param 设置 请求类型 执行的方法 路由参数
// 生成get请求到当前文件 index 方法
@param {get} index

// 生成 get 请求  /home/text
@param {get} index  text

// 生成带参数
@param {delete} delete111 del/:id
// 只解析每个文件第一个 多行注释 /**  */
// app/controller/home.js
const Controller = require('egg').Controller;
/**
 * 首页
 * @controller home
 * @param {get} index :id
 * @param {post} post
 * @param {delete} delete111 del/:id
 */
class HomeController extends Controller {

   async index() {
    const { ctx } = this
    ctx.body = `hi,  ${ctx.params.id}`
  }

  async post() {
    const { ctx } = this
    ctx.body = 'hi, home post'
  }

  async delete111() {
    const { ctx } = this
    ctx.body = `delete, home  ${ctx.params.id}`
  }

}
module.exports = HomeController;

// app/router.js
module.exports = (app) => {
  const { router, controller } = app;
  // 没有写注释可以继续在这里配置
  // router.get('/user/:id', controller.user.info);
}

生成控制台输出

提问交流

请到 egg issues 异步交流。

License

MIT

Package Sidebar

Install

npm i egg-router-auto

Weekly Downloads

1

Version

2.0.3

License

MIT

Unpacked Size

14.5 kB

Total Files

9

Last publish

Collaborators

  • xxllxx