我如何创build一个快速路由来处理这样的URL?

app.get('/:service[SOMETHING GOES HERE]', function(req, res, next){ console.log('Service is:', req.params.service); }); 

这需要捕捉可能看起来像以下任何一个的URL:

 /foo /foo/bar /foo/bar/baz 

callback不涉及foo之后的任何内容,但理想情况下应该能够访问foo作为名为service的参数,而不必手动分析path。

我一直在使用它来testing,但仍然没有发现任何事情。 目前最近的是/:service*

编辑:不,它不是一个答案是/:service/*的重复,因为这不包括/foo

在实际的Express路线中使用/:service*完全是你想要的:

 /foo maps to { '0': '', service: 'foo' } /foo/bar maps to { '0': '/bar', service: 'foo' } /foo/bar/blah maps to { '0': '/bar/blah', service: 'foo' } 

由于某些原因, Express Route Tester会将这些URL映射到不同的地方,以便这些types的模式(可能configuration与Express不同)。

你可以使用app.use()函数。 阅读有关path处理的文档以获取更多信息。 您的代码一旦修改将是:

 app.use('/foo', function(req, res, next){ console.log('Service is:', req.params.service); }); 

缺点是你不会恢复foo作为服务参数。