indexzero
10/4/2011 - 1:20 PM

Simple example of loading routes from multiple modules in node.js

Simple example of loading routes from multiple modules in node.js

var fs = require('fs'),
    path = require('path'),
    journey = require('journey');
    
    
exports.loadAllRoutes = function () {
  var router = new (journey.Router)({
    strict: false,
    strictUrls: false,
    api: 'basic'
  });
  
  var modulesDir = path.join(__dirname, 'lib', 'myapp');
  
  fs.readdirSync(modulesDir).forEach(function (dir) {
    try {
      //
      // Attempt to require the path to load it into memory
      //
      dir = path.join(modulesDir, dir);
      var mod = require(dir);
      
      if (mod && mod.addRoutes) {
        mod.addRoutes()(router);
      }
    }
  })
}