egg-router-auto
v2.0.3
Published
根据JsDoc生成简单的路由
Downloads
3
Maintainers
Readme
egg-router-auto
根据 controller 文件注释自动生成路由
开启插件
// 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 异步交流。