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

Zac*_*man 7 javascript node.js express

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

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

这就是我所拥有的:

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;
Run Code Online (Sandbox Code Playgroud)

当我尝试访问它时:

var randomize = require('randomize');
/* ... */
console.log(randomize.randomize(rows))
Run Code Online (Sandbox Code Playgroud)

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

flo*_*mas 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;
Run Code Online (Sandbox Code Playgroud)