Structuring server-side applications
When it comes to HTTP and web socket servers, it's usually a good idea to separate the endpoint code from the server initialization code. Some folks like to create separate routes files, which can then be required by the server.js
file. Still others like to have each endpoint as a separate file and define routes as glue between server.js
and these "handler" files.
Perhaps that's enough for the kinds of applications you will build, or perhaps you like a more prescriptive structure to your applications, something such as AdonisJS (http://adonisjs.com), for example.
Adonis is a beautifully structured MVC framework for Node.js applications. It uses many cool tricks (such as generators) to enable a clean API for defining templates, request handlers, and database code.
A typical request can be handled in the following way:
class HomeController { * indexAction (request, response) { response.send("hello world"); } } module.exports = HomeController...