cod*_*eto 3 regex node.js express
我有一个定义类似的路由来捕获code参数:
app.get('/:code([a-zA-Z]{3})', codeHandler);
它匹配所有三个字母长的代码,并且工作正常。但我想更改它以匹配除一个之外的所有代码。例如,假设我想排除“cct”。我尝试使用否定前瞻通过修改上面的匹配器来从路由中排除“cct”,如下所示:
app.get('/:code((?!cct)[a-zA-Z]{3})', codeHandler);
但现在这条路线不匹配任何东西。即使以前捕获的有效代码现在也不匹配。我不知道我做错了什么。
我认为最简单的方法是保持正则表达式不变,但在 codeHandler 函数内部有以下内容:
if(req.url == '/cct') return next();
然后 Express 将继续执行下一个路线处理程序。如果您为“/cct”定义了一个,它将转到该地址 - 如果没有,则会导致 404 错误,因为找不到该页面。
| 归档时间: | 
 | 
| 查看次数: | 1362 次 | 
| 最近记录: |