You can read from most of the comments and the other answers why is having a global considered bad practice. However, node.js apps are usually ran from a central point, like "app.js", "server.js" or something similar.
In that case, you can keep some sort of "config" (you said you need APP_NAME.users) as a config option to that file. So in "app.js" you have:
var config = {
myVar: 100
}
If you need to access this variable in some of the modules, pass it as a parameter.
Ie. in global file call it as:
var module = require('./lib/myModule.js').init(config);
Now your module can have it's init function exported, so that it sets its own local copy of config. Example:
var localConfig = null;
exports.init = function(config) {
// merge the two config objects here
localConfig.myVar = config.myVar;
}
Finally, you can have your local code affect the global object with it's private value. Something like this in your module:
exports.modifyGlobalConfig = function() {
global.myVar = myLocalValue;
}
Your global app.js would then use that method to modify it's global value.