What is nodeJS ? Why use it ?
NodeJS is lightweight framework wich is scalable, non-blocking I/O model and written to be the most fast and efficient network application.
In order to use efficiently NodeJS, you might install NPM (Node Package Manager) to download and manage some required modules within your project. (Ex: Underscore, Backbone…)
Recently, i heard that Bower is a package that you can install throw NPM in order to help you in a better way to manage the dependencies inside your project; the difference between NPM and Bower is that the first one manage the dependency in a nested way while the second one use a flat dependency tree in order to avoid problems. This is for the Front end code.
A good example of an application using NodeJS and some module like Dust (Templating motor), Bower, Bootstrap (lightweight framework for building multi-platform app with some components as navbar, buttons…) and Kraken which extends ExpressJS (Useful Framework for building single and multi-page or hybrid web application with a well organized structure) is the Paypal application.
See this interesting article : http://www.infoq.com/news/2013/11/paypal-java-javascript
They build 2 projects one in a Java/Spring way and another with NodeJS.
They needed 5 months for each one but they obtain more performance for the project written in NodeJS, and now it’s more scalable.
Additional info :
Grunt is a javascript framework which helps you in the repetitive tasks as Maven in Java.
Mocha is a test framework as Jasmine.