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?