switch (req.path)
{
case "/api/posts":
console.log("posts");
break;
case "/api/posts/tags/*": // the part * is always changing depending on user input
console.log("tags");
break;
case "/api/best":
console.log("best");
break;
default:
console.log("default");
}
req.path给出了我的路径
例如
/api/post/tags/asd,dsfd
/api/post/tags/1
/api/post/tags/12,123
如何尽可能高效地管理?
某些框架提供了类似
的路径解析器/*
这个和*之后的任何输入都被忽略并视为相同。我很好奇它的内在机制。
答案 0 :(得分:1)
这样的事情(见jsfiddle):
return
您还可以使用正则表达式。请注意,如果某些输入条件可能相互匹配,则您需要在每个if
语句的末尾else if
,或者只使用default
。完全取决于您寻找的路线。
对于if... else if
案例,您可以将所有内容与else
以及最终console.log('default')
放置switch (req.path)
{
case "/api/posts":
console.log("posts");
break;
case req.path.match(/(\/api\/posts\/tags\/)/)[1]:
console.log("tags");
break;
case "/api/best":
console.log("best");
break;
default:
console.log("default");
}
串在一起。我已将上述解决方案保留得非常小,因此您可以根据需要进行扩展。
答案 1 :(得分:1)
您可以将正则表达式放入switch语句中,该语句将处理从该路由分支出来的所有情况。
wait