Organize routes in Node.js Organize routes in Node.js express express

Organize routes in Node.js


I found a short example in ´Smashing Node.js: JavaScript Everywhere´ that I really liked.

By defining module-a and module-b as its own express applications, you can mount them into the main application as you like by using connects app.use( ) :

module-a.js

module.exports = function(){  var express = require('express');  var app = express();  app.get('/:id', function(req, res){...});  return app;}();

module-b.js

module.exports = function(){  var express = require('express');  var app = express();  app.get('/:id', function(req, res){...});  return app;}();

app.js

var express = require('express'),    app = express();app.configure(..);app.get('/', ....)app.use('/module-a', require('./module-a'));    app.use('/where/ever', require('./module-b'));    app.listen(3000);

This would give you the routes

localhost:3000/localhost:3000/module-a/:idlocalhost:3000/where/ever/:id


Check out the examples here:

https://github.com/visionmedia/express/tree/master/examples

'mvc' and 'route-separation' may be helpful.


There also is a screencast of @tjholowaychuk (creator of express) where he uses the method @Vegar described.

Available on Vimeo: Modular web applications with Node.js and Express