Mrcdh技术博客 Mrcdh技术博客
首页
  • Html5
  • Javascript
  • Nodejs
  • electron
  • Android
  • 微信公众号
  • 框架
  • 其他
  • Mysql
  • PHP
  • Python
  • java
  • Gulp
  • 其它
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Mrcdh

全栈开发小学生
首页
  • Html5
  • Javascript
  • Nodejs
  • electron
  • Android
  • 微信公众号
  • 框架
  • 其他
  • Mysql
  • PHP
  • Python
  • java
  • Gulp
  • 其它
  • 网站
  • 资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 常用插件

    • egg-cors(跨域配置)
    • egg-router-plus(路由分组)
      • 安装
      • 使用
      • 注意
    • egg-validate-plus(参数校验基于async-validator)
  • 常用技巧

  • 《Eggjs》
  • 常用插件
mrcdh
2021-03-12
目录

egg-router-plus(路由分组)

# 安装

npm i egg-router-plus --save
1

app_root}/config/plugin.js:

exports.routerPlus = {
  enable: true,
  package: 'egg-router-plus',
};
1
2
3
4

# 使用

此插件将自动加载在app/router/**/*.js中定义的路由器。

注意:所有子路由器将在app/router.js之前加载,请确保所有子路由器定义不冲突(最好使用app.router.namespace为每个子路由器文件创建不同的名称空间)。

app.router.namespace(prefix, ...middlewares)
1
  • prefix - {String}:子路由器的前缀字符串
  • middlewares - {...Function}:可选中间件

注意:prefix 和 path不能是正则表达式,prefix 不能是 /。

使用方法与原本相同:

  • router.verb('path-match', app.controller.action);
  • router.verb('path-match', middleware1, ..., middlewareN, app.controller.action);
  • router.verb('router-name', 'path-match', app.controller.action);
  • router.verb('router-name', 'path-match', middleware1, ..., middlewareN, app.controller.action);

{app_root}/app/router.js:

module.exports = app => {
  const subRouter = app.router.namespace('/sub');
  // const subRouter = app.router.namespace('/sub/:id');
  // const subRouter = app.router.namespace('/sub', app.middleware.jsonp());

  // 访问地址 localhost:7001/sub/test
  subRouter.get('/test', app.controller.sub.test);

  subRouter.get('sub_upload', '/upload', app.controller.sub.upload);
  // 输出: /sub/upload
  console.log(app.url('sub_upload'));
};
1
2
3
4
5
6
7
8
9
10
11
12

# 注意

不支持子路由重定向,请使用app.router.redirect()或重定向到指定名称的路由器。

const subRouter = app.router.namespace('/sub');
 
// 这个将`/sub/go`重定向到`/anyway`, 而不是`/sub/anyway`
subRouter.redirect('/go', '/anyway');
 
// 必须使用全局路由
router.redirect('/sub/go', '/sub/anyway');
 
// 或者将重定向的路由设置路由名称
subRouter.get('name_router', '/anyway', app.controller.sub.anyway);
// 这将重定向 `/sub/go_name` 到 `/sub/anyway` 使用了其路由名称 `name_router`
subRouter.redirect('/sub/go_name', 'name_router');
1
2
3
4
5
6
7
8
9
10
11
12
#egg
上次更新: 2023/09/22, 16:54:32
egg-cors(跨域配置)
egg-validate-plus(参数校验基于async-validator)

← egg-cors(跨域配置) egg-validate-plus(参数校验基于async-validator)→

最近更新
01
uniapp常见问题
03-19
02
Vue3项目搭建
12-25
03
使用pnpm的monorepo组织项目
11-01
更多文章>
Theme by Vdoing | Copyright © 2020-2025 Mrcdh | 苏ICP备2020058908号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×