Node.js is an open-source, cross-platform, JavaScript runtime environment that executes JavaScript code outside of a browser. 

As an asynchronous event-driven JavaScript runtime, Node.js is designed to build scalable network applications. This is in contrast to today's more common concurrency model, in which OS threads are employed. Thread-based networking is relatively inefficient and very difficult to use. Furthermore, users of Node.js are free from worries of dead-locking the process, since there are no locks. Almost no function in Node.js directly performs I/O, so the process never blocks. Because nothing blocks, scalable systems are very reasonable to develop in Node.js.

Why do we adopt this technology?

Node.js pioneered asynchronous I/O and enabled the use of Javascript outside of the browser. Even though it is no longer ranked among the top server technologies in terms of performance, that performance is still very good, allowing anyone that masters Typescript/Javascript to create back-end applications. In addition, Node.js (including its package manager, npm) is vital in supporting today's web development.

Related technologies