我如何创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
作为服务参数。