There are tens of Node.js frameworks available each overcoming a specific limitation of standalone Node package. Of course, all the frameworks I am going to mention here are available for download on your favorite package manager.
Express is the most popular Node.js framework and a component of MEAN stack. A majority of full stack developers employ Express framework to setup HTTP server in Node.js with easier to use, feature-rich Express APIs. Express APIs, essentially, add a set of additional features to already robust Node.js API architecture without overriding it.
This may make you ask the question,“why is it still so popular?” The obvious answer is Express has its own little ecosystem of itself. That is a Node.js developer can easily extend Express, which is itself an extension to Node, with an Express Framework’ framework like Kraken.js. Kraken.js isn’t the only one.
This level of extensibility has garnered Express.js support of major startups into mobile space: MySpace, PayPal, and Klout, which, gradually, led to wider developers’ and makers’ adoption and attention respectively.
What happens when one of the Fortune-500 companies turns up against the likes of Amazon and eBay on Black Friday to compete in online sale finds Express.js a little short of their expectations? It commissions Hapi.js, a Node framework that builds on the shortcomings of Express and shares the same codebase.
Hapi addresses the biggest shortcoming Express.js has that makes Express unsuitable for developing enterprise applications—the inability to split code into small chunks.Enterprise applications can go thousands of lines of code and are, generally, coded by distributed engineering teams. The inability to split codes into small chunks bounds achievable code distribution amongst teams or, in terms of enterprise developers, limits extensibility and maintainability.
Hapi.js is extendable with a rich set of plugins for adding enterprise function to a Node application, including authorization, authentication, metrics, and logging. Hapi developers tend to focus more on writing reusable application logic than spending time building infrastructure. OpenTable, Macy’s, Condé Nast, and Disney are users of Hapi.js.
Koa.js is once again a Node.js framework to build application and APIs on. Koa is the brainchild of initial contributors to Express.js project on GitHub. It works more or less like Express, except it uses generators for manage callbacks and is more tolerant to errors.
Developers developing application that will generate too many callbacks can save many complicacies by choosing Koa over Express.js.
All the above Node.js frameworks are great for building server application but not creating complete web apps with frontend and backend. For building web application, developers ask for MVC frameworks like Ruby on Rails or Laravel. Total.js is a sort of MVC framework that is built upon Node.js like others in the list but provides approachable endpoints to integrate database and frontend technology of your choice.
The Node part of Total.js, in addition to a full web server, includes SMTP mail client, image processing algorithms and web socket among a few. At the time of writing, Total.js was compatible with Angular, Backbone, React, Ember, and of course, Bootstrap when it comes to frontend frameworks and MongoDB, CouchDB, PostgreSQL, SQLite and MySQL when it comes to databases.
The two chief ingredients of Sails.js are Express.js and Socket.IO. The ability to generate RESTful JSON models with support for websockets and HTTP makes Sails.js a perfect framework to write data-oriented and real-time applications like chat portals.
Meteor.js even has default elements for every component in its web development stack. Of course, they are interchangeable but this makes the framework less flexible.
Derby is a special purpose Node framework for developing web applications to enable real-time collaboration. To enable collaboration between its users, DerbyJS has a dedicated data synchronization engine, Racer. Racer syncs data between users and makes real-time collaboration a possibility.
Also, DerbyJS is a MVC framework. That is, the view is updated every time the model changes. Also, DerbyJS application are search engine friendly.
Socket.IO enables real-time communication in chat apps. It opens an event-driven, duplex communication between client and server. A websocket-compatible server,Socket.IO provides real-time collaborative features and analytics.
Socket.IO is platform agnostic and goes with almost every device, OS, or browser. One of its tops clients is Flightcar. Flightcar, as the name suggests, rents cars from the airport while traveling.
LoopBack,along with StrongLoop API platform, is a vastly extensible Node.js API framework developed by IBM. LoopBack APIs connect devices and integrate Android and AngularJS SDKs for mobile app development.
When it comes to support for databases, LoopBack supports all major database systems: Oracle, Mongo, and SQL. StrongLoop is a special version of Node.js and a stress-free API tool for Express professionals.
This fast, lightweight Node.js server builds reusable, scalable API servers that are inter-compatible and are backward compatible. By using the same API code for HTTP and socket transports, it gives access to APIs and any static data on the server to an authorized client.
TaskRabbit and Samsung are two key Actionhero.js users.
Since most of the mentioned Node.js frameworks are either based on Express or built by the same team, they share a lot of common features and, thus, give an easy switch to developers moving from one to another. A developer moving from Express to StrongLoop for developing an API server will only take a couple of hours to make the switch.
While I am not a big fan of opinionated Node.js frameworks and would prefer lightweight Express with little additions, these MVC frameworks lets you build fantastic applications without paying too attention to setup and thus saving you a lot of precious time.