javascript - 在 node.js 中验证一个集合是否为空

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

最佳答案

您的方法有效。

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

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

您可能会找到 this question有用。

关于javascript - 在 node.js 中验证一个集合是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16562354/

相关文章:

javascript - 如何从JS中的图像获取DPI?

javascript - Extjs : url in store

javascript - 仅当我通过 graphql 端点进行更改时才会调用 Hasura 触发器吗?

node.js - CoffeeScript + ionic

Python Convert 设置为列表,不断收到 TypeError : 'list' object is not callable

java - 如何通过 JPA 持久化 java.util.Set?

python - 相当于 python 的 set.pop() 用于 C++ 的无序集

javascript - 向右滑动时删除 div

javascript - 在没有 promise 的情况下将多个参数应用于回调 - node-js

node.js - Nodejs 工作线程可以用于执行长时间运行的基于文件 I/O 的 JavaScript 代码吗?