我想/module
为该目录下的任何匹配路由添加一些功能。
所以对于给定的一组路线:
/module/
/module/page
/module/things
/module/things/:thingid
我希望路由器中的代码为/module
上述所有路由运行。/module
不渲染,它只是获取一些公共数据并配置视图上下文。然后其他路由之一运行并呈现页面。
koa-router可以做到这一点吗?还是有更好的包?
编辑:我想也许我必须做一个嵌套路由器并在嵌套之前添加中间件,如下所示:
var subRouter = new Router();
subRouter.get('/', function *(next){ doSomething(); });
subRouter.get('/page', function *(next){ doSomething(); });
subRouter.get('/things', function *(next){ doSomething(); });
subRouter.get('/things/thingid', function *(next){ doSomething(); });
mainRouter.use('/module',
function *(next) { doPreRouteSteps(); yield next; },
subRouter.routes()
);
似乎正在工作,但我不确定这是一个丑陋的黑客还是什么。如果有更好的方法,请指教。