在包含express param的快速路由字符串中的正则表达式“或”

时间:2013-12-29 04:38:12

标签: javascript regex express

我正在尝试这样做,但它不起作用。

app.get("/|/:enter");

我希望一个app.get同时路由//:enter

更新

两个

app.get("/|/:enter");

app.get("/:enter|/");

不要将完整的“enter”字符串发送到params中间件解析,id变量只是“e”。

4 个答案:

答案 0 :(得分:0)

需要

app.get("/:enter|/")

*颠倒

它以某种方式以其他方式覆盖所有其他路线。

答案 1 :(得分:0)

app.get(/^(\/|\/:enter)$/, function(){...});

docs:http://expressjs.com/api.html#app.VERB

答案 2 :(得分:0)

不能合并正则表达式和params XD

答案 3 :(得分:0)

在您的情况下,您可以将:enter标记为可选参数:

app.get('/:enter?')

此外,您可以使用express-route-params将验证应用于:enter参数,以便仅当enter满足特定条件时路线才会匹配。例如:

app.param('enter', /^\w+$/)

这样你可以将regexp和params结合起来;)