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
您如何尽可能有效地处理这个问题?
一些框架提供的路径解析器看起来像
/*
此输入以及 * 之后的任何输入都将被忽略并视为相同。我很好奇它的内在机制。
最佳答案
像这样的东西怎么样(参见jsfiddle):
function route(req) {
if(req.path === '/api/posts') {
console.log('posts');
}
if(req.path.indexOf('/api/posts/tags') > -1) {
console.log('tags');
}
// etc.
}
route({path: '/api/posts'}); // => posts
route({path: '/api/posts/tags/hi'}); // => tags
route({path: '/api/posts/tags/cool'}); // => tags
您还可以使用正则表达式。请记住,如果某些输入条件可能相互匹配,您需要在每个 if
语句的末尾返回 return
,或者简单地使用 else if
。完全取决于您寻找的路线。
对于 default
情况,您可以使用 if...else if
将所有内容串在一起,并在最后的 else
中放入 console.log('默认')
。我已经将上述解决方案保留得非常少,因此您可以根据需要扩展它。
输出
关于javascript - 如何切换变量格式不一致的大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31104638/