【问题标题】:How to check if module function exist in Node js如何检查Node js中是否存在模块功能
【发布时间】:2018-07-25 05:58:17
【问题描述】:

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

例如

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
}

【问题讨论】:

  • “类似的东西”确实有效。
  • @JonasW。真的吗?
  • 是的,Javascript 很酷
  • @JonasW。 1) That 2) is 3) arguable.
  • @alexL 你真的想争论还是......? ;)

标签: javascript node.js


【解决方案1】:

正如我在 cmets 中所说,您所写的内容确实有效,因为

if(cities.newyork){

检查cities.newyork 是否真实。以下是真实的:

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

如果没有定义,cities.newyork 将是 undefined,这是 falsy(将进入 else 分支)

【讨论】:

    【解决方案2】:

    typeof city.cityName === 'function'

    如果城市名称被分配给某个变量

    城市类型[cityName] === '功能'

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-03
      • 1970-01-01
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      • 2011-08-21
      相关资源
      最近更新 更多