Home / Function/ module() — express Function Reference

module() — express Function Reference

Architecture documentation for the module() function in boot.js from the express codebase.

Entity Profile

Dependency Diagram

graph TD
  3e41721a_0283_df3b_7325_ab0106962d0f["module()"]
  d4efea1a_4a8b_74fd_208c_3e57467bf71d["boot.js"]
  3e41721a_0283_df3b_7325_ab0106962d0f -->|defined in| d4efea1a_4a8b_74fd_208c_3e57467bf71d
  style 3e41721a_0283_df3b_7325_ab0106962d0f fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

examples/mvc/lib/boot.js lines 11–83

module.exports = function(parent, options){
  var dir = path.join(__dirname, '..', 'controllers');
  var verbose = options.verbose;
  fs.readdirSync(dir).forEach(function(name){
    var file = path.join(dir, name)
    if (!fs.statSync(file).isDirectory()) return;
    verbose && console.log('\n   %s:', name);
    var obj = require(file);
    var name = obj.name || name;
    var prefix = obj.prefix || '';
    var app = express();
    var handler;
    var method;
    var url;

    // allow specifying the view engine
    if (obj.engine) app.set('view engine', obj.engine);
    app.set('views', path.join(__dirname, '..', 'controllers', name, 'views'));

    // generate routes based
    // on the exported methods
    for (var key in obj) {
      // "reserved" exports
      if (~['name', 'prefix', 'engine', 'before'].indexOf(key)) continue;
      // route exports
      switch (key) {
        case 'show':
          method = 'get';
          url = '/' + name + '/:' + name + '_id';
          break;
        case 'list':
          method = 'get';
          url = '/' + name + 's';
          break;
        case 'edit':
          method = 'get';
          url = '/' + name + '/:' + name + '_id/edit';
          break;
        case 'update':
          method = 'put';
          url = '/' + name + '/:' + name + '_id';
          break;
        case 'create':
          method = 'post';
          url = '/' + name;
          break;
        case 'index':
          method = 'get';
          url = '/';
          break;
        default:
          /* istanbul ignore next */
          throw new Error('unrecognized route: ' + name + '.' + key);
      }

      // setup
      handler = obj[key];
      url = prefix + url;

      // before middleware support
      if (obj.before) {
        app[method](url, obj.before, handler);
        verbose && console.log('     %s %s -> before -> %s', method.toUpperCase(), url, key);
      } else {
        app[method](url, handler);
        verbose && console.log('     %s %s -> %s', method.toUpperCase(), url, key);
      }
    }

    // mount the app
    parent.use(app);
  });
};

Domain

Subdomains

Frequently Asked Questions

What does module() do?
module() is a function in the express codebase, defined in examples/mvc/lib/boot.js.
Where is module() defined?
module() is defined in examples/mvc/lib/boot.js at line 11.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free