Express Router带有子路由器

时间:2015-05-08 16:32:00

标签: node.js express routing

假设父模块有一个使用

的公共请求的路由器

家长模块

app.get("/speakers",...
app.get("/agenda",... etc.

和另一个通配符路由,它实际上将请求委托给子模块来处理父模块不需要知道或关心的所有嵌套操作。

app.all("/admin/*/*" //delegates task to another module

子模块

子模块接收管理员请求但是它必须处理所有uri,路由和参数

/admin/login
/admin/dashboard/events
/admin/dashboard/events/1 //could go deeper

如何在此嵌套级别进行另一级路由解析或引擎?

1 个答案:

答案 0 :(得分:2)

您可以将管理路由组织为一个单独的模块,如下所示:

<强> /routes/admin.js

var login = function(req, res, next) {
    res.end();
}

// etc...

module.exports = express.Router()
    .post('/login', login)
    .get('/dashboard/events', listEvents)
    .get('/dashboard/events/:id', findEvent);

然后在 app.js

var admin = require('./routes/admin');
app.use('/admin', admin);

请注意,您在管理路由中定义的路由都将相对于您指定为app.use的第一个参数的根目录。