expressjs的高级路线

时间:2013-11-20 21:26:34

标签: regex node.js express

我正在尝试创建与两者匹配的快速路线

/users/joe

/users/joe-4574

我知道我需要正则表达式才能解决这个问题,但尝试了各种各样的组合,我似乎无法让它发挥作用。

注意:我想匹配任何用户/用户ID,joe和4574只是示例。

1 个答案:

答案 0 :(得分:0)

这个怎么样:

app.get(/^\/users\/([a-z]+)(?:\-(\d+))?/, ...);

这显然假设用户部分只能包含小写az,并且用户ID部分是全数字,但我会留下详细信息:)

还会匹配/users/joe-foobar的请求,但会将req.params[1]设置为null(因为它不能匹配全部 - {1}}数字用户ID)。