验证node.js中的集合为空

时间:2013-05-15 10:13:44

标签: javascript node.js set

var http = require('http'),
    url = require('url'),
    route = require('router')();
...
route.get('/{betNameType}', function(req, res) {
    var query = url.parse(req.url, true).query;
    if (!Object.keys(query).length) {
       // query string is empty
    }  
    else {
       // query string is set
    }
}

各位大家好!。

我是javacript / node.js的新手。我想知道是否可以简化我的代码。特别是验证“query”是否为空的部分。据我所知,我找不到更简单的方法

1 个答案:

答案 0 :(得分:1)

你的方法有效。

在检查对象的一般情况下,它在should not be an issue with the query string (link to source code)的不可枚举属性的边缘情况下失败,并且可以使用Object.getOwnPropertyNames而不是Object.Keys来解决。

鉴于您正在运行nodejs而不是浏览器JavaScript,使用Object.Keys可能是最简洁的,您可以检查对象是否没有可枚举的属性。我唯一要改变的是明确写.length===0而不是.length,因为这是你实际检查的内容(对象没有键,而不是它的键可能是假的)

您可能会发现this question有用。