Node.js url.parse和Query Strings Behavior

时间:2014-04-30 14:56:25

标签: javascript node.js url

鉴于网址:

  1. http://somedomain.com/?s=something

  2. http://somedomain.com/?s=

  3. http://somedomain.com/

  4. 传递代码:

    var queryData = url.parse(request.url, true).query;
    if (queryData["s"]) {
        console.log("s present in hash");
    } else {
        console.log("s NOT present in hash");
    }
    

    我希望网址1和2能够测试为真。他们在我以前用过的其他langs / libs中做过。在查询字符串解析代码中,他们不会将#2视为{" s" :null}它只是没有把s放在哈希中 如果我想要这种行为或者我应该能够在查询字符串中测试s var的另一种方式,是否应该使用另一个节点包?

1 个答案:

答案 0 :(得分:1)

哈希中的变量s 。它等于空字符串,这正是您在URL中所拥有的字符串。当强制转换为布尔值时,它将评估为false

> url.parse('http://somedomain.com?s=', true).query
{ s: '' }

> !!url.parse('http://somedomain.com?s=', true).query.s
false