本文将为您详细介绍本站关于子路由的详细指南,帮助您更好地理解和应用相关功能。

什么是子路由?

子路由是路由的一部分,它允许您将一个路由拆分成多个子路由,以便更细致地控制访问权限和功能。

子路由的用法

  1. 定义子路由:在主路由的基础上,添加子路由。

    const express = require('express');
    const router = express.Router();
    
    // 定义子路由
    router.get('/sub-route', (req, res) => {
        res.send('这是子路由的内容');
    });
    
    // 将子路由挂载到主路由
    app.use('/main-route', router);
    
  2. 访问子路由:通过访问主路由的路径,并加上子路由的路径,来访问子路由。

    GET /main-route/sub-route
    
  3. 使用中间件:您可以在子路由上使用中间件,以实现更细粒度的控制。

    router.use('/sub-route', (req, res, next) => {
        // 中间件逻辑
        next();
    });
    

实例:子路由权限控制

以下是一个简单的权限控制示例,用于展示如何使用子路由。

const express = require('express');
const router = express.Router();

// 模拟用户权限数据
const users = [
    { id: 1, name: '张三', role: 'admin' },
    { id: 2, name: '李四', role: 'user' }
];

// 权限检查中间件
function checkRole(role) {
    return (req, res, next) => {
        const user = users.find(user => user.id === req.session.user_id);
        if (user && user.role === role) {
            next();
        } else {
            res.status(403).send('无权限访问');
        }
    };
}

// 定义子路由
router.get('/admin', checkRole('admin'), (req, res) => {
    res.send('欢迎,管理员');
});

router.get('/user', checkRole('user'), (req, res) => {
    res.send('欢迎,普通用户');
});

// 将子路由挂载到主路由
app.use('/main-route', router);

总结

通过使用子路由,您可以更好地组织和管理您的路由,实现更灵活的访问控制和功能划分。

更多关于路由的信息


子路由示例