2
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 相当陌生。我想知道是否可以简化我的代码。特别是验证“查询”是否为空的部分。据我所知,我没有找到更简单的方法

4

1 回答 1

1

你的方法有效。

在检查对象的一般情况下,它在不可枚举属性的边缘情况下失败,这不应该是查询字符串的问题(链接到源代码),并且可以通过使用Object.getOwnPropertyNames代替来解决Object.Keys

鉴于您正在运行 nodejs 而不是浏览器 JavaScript,因此 usingObject.Keys可能是您检查对象是否没有可枚举属性的最干净的方法。我唯一要更改的是显式编写.length===0而不是.length因为这是您实际上要检查的内容(对象没有键,而不是它的键可能是假的)

您可能会发现这个问题很有用。

于 2013-05-15T10:16:36.177 回答