javascript - 如何检查 Node js 中是否存在模块函数

标签 javascript node.js

我创建了一个模块并在其中定义了函数。有时我需要检查某个函数是否实际上已经创建。

例如

var newyork = function() { 
   console.log("newyork");
};

var washington = function() { 
   console.log("washington");
};

exports.newyork = newyork;
exports.washington = washington;

现在在不同的文件中,我想首先检查该函数是否存在,例如:

var cities = require('./city');

if(cities.newyork) {
  console.log("city function exist");
}
else {
  //false
}

最佳答案

正如我在评论中所说,你写的实际上有效,因为

if(cities.newyork){

检查cities.newyork是否真实。以下内容属实:

  • 函数(这就是它在这里起作用的原因)
  • 除 0 之外的数字
  • 除空字符串之外的字符串
  • 对象/数组

如果未定义,cities.newyork 将为 undefined,即 falsy(将输入 else)分支)

关于javascript - 如何检查 Node js 中是否存在模块函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51506264/

相关文章:

javascript - 如何解决 Node.js 脚本中的 require 与 import 问题

javascript - 使用 Node 进行 Jest 测试 - 超时 - 在 jest.setTimeout 指定的 5000 毫秒超时内未调用异步回调

node.js - 从后端api到前端react应用程序的代理错误

javascript - 我们如何知道所有的异步操作、所有的回调都完成了,并等待它们

javascript - Vue.js:导入相同的 css 文件时定义了重复的 CSS 类(CSS 组件)

javascript - '杂耍异步' - 为什么我的解决方案根本不返回任何内容?

node.js - NodeJS中的 'requiring'模块时const vs var之间是否存在效率差异

javascript - node.js 中的 Redis 错误

javascript - 将 json 从 textarea 解析为 api 调用

javascript - 用于选择字体的文本属性输入框