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.