是否可以在其他路由器中使用路由器。我试过了
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。
答案 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]
的无限组合。