i've node app that having the main function server.js(entry point) Following is the server.js file code var childModule = require("./controller/childModule"); var server = http.createServer(app); .... var server = module.exports = {}; server.run = function () { procInv.preProcess(function () { server.listen(app.get('port'), function (err) { if (err) { console.error(err); } else { console.log('application Listening on port: ' + app.get('port')); } proxy.web(server); }); }) }; server.addNewFunctionlity= function(oDir){ extLoader.load(oDir.folder); }; module.exports = function () { server.run(); }(); server.childModule = childModule; The code do this: when user call to the server he need to write the following code var myModule = require("myModule"); myModule.addNewFunctionlity({folderPath:__dirname + '/files'}); myModule.addNewFunctionlity({folderPath:__dirname + '/files2'}); **The Code is working!** but I've several questions :-) 1. Does I export the childModule OK? 2. Does the usage of my API is make sense? 3. Does the var `server = module.exports = {}` is OK?