skerit skerit - 4 months ago 16
Node.js Question

In what scope are module variables stored in node.js?

When I do this in my node.js module:

var abc = '123';


Where does it go? And by this I mean: in the browser it goes in
window.abc
(if not executed in a function or otherwise)

If I execute this:

abc = '123';


Then I can find it in
global.abc
, but that's not how I want it.

Answer

Unlike the browser, were variables are by default assigned to the global space (i.e. window) in Node variables are scoped to the module (the file) unless you explicitly assign them to module.exports.

In fact, when you run "node myfile.js" or "require('somefile.js')" the code in your file is wrapped as follow:

(function (exports, require, module, __filename, __dirname) {
     // your code is here
});
Comments