Eggjs笔记:路由添加多个中间件支持,路由别名,路由重定向,路由分组

本文详细介绍了Eggjs框架中的路由配置方法,包括添加多个中间件、给路由起别名、路由重定向(内部与外部)、以及路由分组等核心内容。通过模块化方式分组路由规则,提高代码可读性和维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Eggjs中的路由配置

  • 官网:https://eggjs.org/zh-cn/basics/router.html

路由添加多个中间件支持

示例:

const auth1 = app.middleware.auth1();
const auth2 = app.middleware.auth2();

router.get('/', auth1, auth2, controller.home.index);

给路由起别名

router.get('index', '/',  controller.home.index); // 名称为 index

路由重定向

1 ) 路由内部重定向

路由重定向

module.exports = app => {
    app.router.get('index', '/home/index', app.controller.home.index);
    app.router.redirect('/', '/home/index', 302); // 这种写法是将 / 重定向到 /home/index,有利于seo优化
};

2 ) 路由外部重定向

控制器重定向,默认是临时重定向302, 一般登录成功后的重定向

// app/router.js
module.exports = app => {
app.router.get('/search', app.controller.search.index);
};
// app/controller/search.js
exports.index = async ctx => {
    const type = ctx.query.type;
    const q = ctx.query.q || 'nodejs';
    if (type === 'bing') {
        ctx.redirect(`http://cn.bing.com/search?q=${q}`);
    } else {
        ctx.status = 301; // 把重定向改为301 永久重定向
        ctx.redirect(`https://www.google.co.kr/search?q=${q}`);
    }
};

// curl http://localhost:7001/search?type=bing&q=node.js
// curl http://localhost:7001/search?q=node.js

路由分组(路由映射)

我们并不建议把路由规则逻辑散落在多个地方,会给排查问题带来困扰

下面用模块化划分的方式来进行分组

// app/router.js
module.exports = app => {
    require('./router/news')(app);
    require('./router/admin')(app);
};

// app/router/news.js
module.exports = app => {
    app.router.get('/news/list', app.controller.news.list);
    app.router.get('/news/detail', app.controller.news.detail);
};

// app/router/admin.js
module.exports = app => {
    app.router.get('/admin/user', app.controller.admin.user);
    app.router.get('/admin/log', app.controller.admin.log);
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值