Node.js standart libs auto-exigem

Eu gosto do node.js porque é muito rápido. Mas também gosto de fazer objetos globais em meu aplicativo. Acho que não há nada de errado com isso. Por exemplo, tenho o global.Appobjetivo de manter as coisas de todo o objeto.

Foi muito chato para mim escrever require('fs')ou require('util')em todos os arquivos, também acho que não é tão rápido quanto acessar objeto global.

Então eu vim com esta solução:

var node = {};

var modules = ['child_process', 'fs', 'http', 'https', 'cluster',
'crypto', 'dns', 'domain', 'net', 'url', 'util', 'vm', 'path'
];

var loadedModules = {};

modules
.forEach(function(moduleName) {
Object.defineProperty(node, moduleName, {
get: function() {
if (!loadedModules[moduleName]) {
loadedModules
[moduleName] = require(moduleName);
}
return loadedModules[moduleName];
}
});
});

module.exports = node;
global.node = node;

Ele torna o carregamento lento para todas as bibliotecas padrão como getters de objeto global. node
Posteriormente em meu código:

node.fs.readFile
node
.util._extend({}, params);
node
.url.parse(node.url.resolve(endpoint, filepath));
node
.url.format(urlObj);