I'm attempting to export a module that should store a hashtable of given information so that another call to access that information can be checked for existence in the hashtable, and if found, return the value in the hashtable.
I am having trouble getting the hashtable in the export to remain consistent throughout the app as a singleton/static/global variable.
Here's what I have:
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;
And when I try to access it with:
var randomize = require('randomize');
/* ... */
console.log(randomize.randomize(rows))
It creates a new hashtable for each instance. How can I make it so that it reuses the same instance of hashtable?
Module exports are the instruction that tells Node. js which bits of code (functions, objects, strings, etc.) to “export” from a given file so other files are allowed to access the exported code.
Module exports are the instructions that tell Node. js which bits of code (functions, objects, strings, etc.) to export from a given file so that other files are allowed to access the exported code.
By module. exports, we can export functions, objects, and their references from one file and can use them in other files by importing them by require() method.
Static variable in JavaScript: We used the static keyword to make a variable static just like the constant variable is defined using the const keyword. It is set at the run time and such type of variable works as a global variable. We can use the static variable anywhere.
Your hashtable might be in the wrong scope - it's possibly being clobbered with each require
. Try this instead:
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;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With