javascript - 如何切换变量格式不一致的大小写

标签 javascript node.js express

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('默认')。我已经将上述解决方案保留得非常少,因此您可以根据需要扩展它。

输出

output

关于javascript - 如何切换变量格式不一致的大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31104638/

相关文章:

node.js - 如何更新 Mongoose 中的部分但非全部字段

javascript - 悬停显示 - div 的内容 - 悬停前不使用空间

javascript - 循环加载 jquery

javascript - 如何通过网络表单匿名上传文件到 Google Drive

javascript - Node Js不是异步的

node.js - Node js 将架构放在其他文件夹中

javascript - nodejs内存不足

javascript - express.js 中的 url 解析

node.js - res.redirect() cors在MEAN应用程序中不起作用

objective-c - 当正文中包含表情符号时,HTTP POST 失败