Allowing web application development to unify around a single programming language, rather than rely on a different language for writing server side scripts
Server Side JS
Javascript used primarily for client-side scripting, Node.js enables JavaScript to be used for server-side scripting
Key Features
Threading
Node.js operates on a single thread, using non-blocking I/O calls, allowing it to support tens of thousands of concurrent connections without incurring the cost of thread context switching.
V8
V8 is the JavaScript execution engine built for Google Chrome and open-sourced by Google in 2008. Written in C++, V8 compiles JavaScript source code to native machine code instead of interpreting it in real time.
Package management
npm is the pre-installed package manager for the Node.js server platform. It is used to install Node.js programs from the npm registry, organizing the installation and management of third-party Node.js programs.
Unified API
Node.js can be combined with a browser, a database supporting JSON data. With the adaptation of what were essentially server-side development patterns such as MVC, MVP, MVVM, etc
Event loop
Node.js registers itself with the operating system in order to be notified when a connection is made, and the operating system will issue a callback.
Who Uses Node.JS?
PHP Way & Node.JS Way
What Node.JS Can Do?
Node.js can generate dynamic page content
Node.js can create, open, read, write, delete, and close files on the server
Node.js can collect form data
Node.js can add, delete, modify data in your database