如何在 Express (v4.15) 路由中指定带有 OR 条件的正则表达式?
我希望以下路由指向相同的方法
/video/:videoId
/movies/:videoId
/media/:videoId
当我尝试时
app.get('/(video|media|movies)/:videoId', this.redirectToVideo.bind(this));
我收到以下错误
SyntaxError: Invalid regular expression: /^\/(?(?:([^\/]+?))|media|movies)\/(?:([^\/]+?))\/?$/: Invalid group
当我尝试不使用 () 时
app.get('/video|media|movies/:videoId', this.redirectToVideo.bind(this));
前两条路线有效,但那一条不行
/media/:videoId
谢谢
最佳答案
我只会为你的路线使用一个数组:
app.get(['/video/:videoId', '/movies/:videoId', '/media/:videoId'], this.redirectToVideo.bind(this))
编辑:
如果您想使用正则表达式,这也可以:
app.get('(\/video|\/media|\/movies)/:videoId', this.redirectToVideo.bind(this)))
关于node.js - Express:逻辑或路由中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47078537/