# Pastebin 1wDwo1JB var express = require('express'); var util = require('util'); var app = express(); // Our base controller const baseController = require('./controllers/base'); // This function will create custom controllers but will NOT initiate them function GetController (controllerName) { var controller = require('./controllers/' + controllerName); return util.inherits(controller, baseController); } // My custom middleware app.use(function (req, res, next) { req.GetController = GetController; next(); }); // A route app.get('/', function (req, res) { // GetController will require ./controllers/user.js but will not init it (new) var userController = new req.GetController('user'); // We initialize User Controller userController.getUserById(100).then(function (userData) { res.send('Do something with data'); }); }) // Start server app.listen(8000);