Node.js applications are designed to maximize throughput and efficiency, using non-blocking I/O and asynchronous events. The applications run single-threaded even though it uses multiple threads for file and network events. The platform is normally used for real time applications because of its asynchronous nature.
The Node.js community is based on sharing. It’s easy to share packages of library code. The Node Package Manager is included with Node.js and has grown to a collection of almost 50,000 packages, making it likely that another developer has already packaged up a solution to a problem you may be having or even some you haven’t even come across yet.
Sharing code under the MIT open source license is highly recommended in the community, which also makes cross-pollination of code relatively worry-free and legal, from an intellectual property standpoint.
The community is also highly engaged in binding interesting C libraries like computer vision (OpenCV) and the Tesseract open source optical character library. Tesseract makes it possible to do projects like Imdex, which processes images from the Web so they can be automatically searched for written content.
Node Package Manager
Node Package Manager is the root of almost all deployment systems for Node.js and underlies the many PaaS (platform-as-a-service) providers for Node.js, making it easy to move smaller applications between providers.
Node.js applications and Node.js Core itself are broken down into small modules that are composed and shared. Each package and tool can be crafted to be made more manageable. The ease with which the modules can be created encourages experimentation in the community.
Reasons to use Node
Node is fast, which is a pretty important requirement when you’re a startup trying to make the next big thing and want to make sure you can scale quickly, coping with an influx of users as your site grows.
Node is also perfect for offering a RESTful API, a web service which takes a few input parameters and passes a little data back, or simple data manipulation without a huge amount of computation. Node can handle thousands of these concurrently where PHP would just collapse.