Node.js - 模块导出静态变量

时间:2015-02-27 19:54:07

标签: javascript node.js express

我试图导出一个应该存储给定信息哈希表的模块,以便可以检查另一个访问该信息的调用是否存在于哈希表中,如果找到,则返回哈希表中的值。 / p>

我无法在导出中获取哈希表,以便在整个应用程序中保持一致,作为单例/静态/全局变量。

以下是我所拥有的:

var Randomize = {

  hashTable: [],
  randomize:  function(rows) {

    var randomized = [];
    for(var i in rows) {
      //check if exists in hashtable, use values accordingly
    }
    return randomized;
  }

};

module.exports = Randomize;

当我尝试使用以下方式访问它时:

var randomize = require('randomize');
/* ... */
console.log(randomize.randomize(rows))

它为每个实例创建一个新的哈希表。我怎样才能使它重用哈希表的相同实例?

1 个答案:

答案 0 :(得分:4)

您的散列表可能位于错误的范围内 - 它可能会被每个require破坏。试试这个:

var hashTable = [];

var Randomize = {

  hashTable: hashTable,
  randomize:  function(rows) {

    var randomized = [];
    for(var i in rows) {
      //check if exists in hashtable, use values accordingly
    }
    return randomized;
  }
};

module.exports = Randomize;