我有一个函数来判断一个请求是否有任何查询,并基于此执行不同的操作.目前,我有if(query)人在做其他事情.然而,似乎当没有查询数据时,我最终得到了一个{} JSON对象.因此,我需要用if(query.isEmpty())或类似的东西来代替if(query).有人能解释一下我怎么能在NodeJS中这样做吗?V8 JSON对象是否具有此类功能?

推荐答案

您可以使用以下任一功能:

// This should work in node.js and other ES5 compliant implementations.
function isEmptyObject(obj) {
  return !Object.keys(obj).length;
}

// This should work both there and elsewhere.
function isEmptyObject(obj) {
  for (var key in obj) {
    if (Object.prototype.hasOwnProperty.call(obj, key)) {
      return false;
    }
  }
  return true;
}

用法示例:

if (isEmptyObject(query)) {
  // There are no queries.
} else {
  // There is at least one query,
  // or at least the query object is not empty.
}

Node.js相关问答推荐

monorepo内的NPM包使用不在注册表中的本地包

无法从ejs Web应用程序中的正文中提取数据

Sveltekit停靠的应用程序找不到从Build导入的包

如何在MEVN堆栈中结合创建和更新表单流程?

与诗乃一起嘲笑奈克斯

npm 在 Windows 终端中不工作

如何使用对象中的常量值验证字符串字段?

将 express js app.use() 移动到另一个文件

npm chokidar 触发事件两次

'{ id: string; 类型的参数}' 不可分配给FindOneOptions类型的参数

Socket IOFlutter 未连接

制作一个接受命令行参数的脚本

TypeError:winston.Logger 不是带有winston 和morgan 的构造函数

在 express 中添加故意延迟

MongoDB Node findone如何处理没有结果?

如何从 Node.js 中的 URL 获取

Route.get() 需要回调函数,但得到对象未定义

NodeJS 中的 HTTPS 请求

大型项目的 NodeJS vs Play 框架

如何从 Node.js 应用程序Ping?