路由器内的路由器

时间:2015-03-11 11:55:14

标签: node.js express

是否可以在其他路由器中使用路由器。我试过了

  router.get('/foo', require('path to some express router'));

然后在某些快递路由器文件'

  router.get('/bar', function(req, res){...});

问题是,第一个路由器不会从url中删除/ foo,所以如果我请求/ foo / bar第二个路由器仍然会查找/ foo / bar并且/ bar不会被调用。除了router.get(' / foo / bar' ...这对我来说是一种无用的解决方法之外还有其他方法。

THX。

1 个答案:

答案 0 :(得分:0)

你可以这样做,但你的语法有点偏离:

在您的主文件中(定义了app):

app.use('/foo', require('path to some express router'));

在您的路由器文件中:

router.get('/bar', function(req, res){...});

确保从路由器文件中导出路由器对象:

var express = require('express'),
    router = express.Router;

router.get('/bar', function(req, res){...});

module.exports = router;

修改:按照您的建议使用国际化,您可以在挂载点提供此:locale替换:

app.use('/:locale', require('path to some express router'));

然后,在您的终端中,您可以致电req.param('locale')。您可以在应用程序中使用.use.[verb]的无限组合。