在param前提下命名的路由

如果在url中设置:slug参数,我希望使用路由参数前提条件通过“slug”获取投资组合项目。 然而,我也想使用RegExp来匹配URI。 节点中是否支持命名的捕获? 我可以给([-\w]+)捕获一个名字,所以子弹前提条件被解雇?

 app.param('slug', function(req, res, next, slug){ // get thing from database by slug }) //app.get('/work/view/:slug', function(req, res){ app.get(/^\/work\/view\/([-\w]+)/, function(req, res){ // render view }) 

我不确定这是不是你要找的,但据我所知,没有直接的办法去做你所需要的。 但是,您可以使用命名参数(“slug”),并添加一个正则expression式预置来实现相同的效果。

在这里看一下visionmedia的express-params模块。 我希望它能保持得很好,因为它来自expression本身的创造者。

你要做什么(在安装express-params之后)基本上是这样的:

 app.param('slug', /^[-\w]+$/); app.param('slug', function(req, res, next, slug){ // get thing from database by slug }); app.get('/work/view/:slug', function(req, res){ //render view }); 

我没有testing任何这个。