Node.js was first presented by American software engineer Ryan Dahl in 2009 at the annual European JSConf to offer networking applications a non-blocking input / output (I / O) architecture. He wanted to work in an environment that could handle different networking tasks simultaneously without sacrificing performance.
Dahl questioned how traditional server applications used to perform I / Orelated jobs. Before Node.js, a typical server would block the program while waiting for a response after being asked to complete an I / O task (for example, querying the database). Initial web application technologies attempted to avoid this issue by spinning up threads for requests. A different thread would handle each request to minimize wait time for clients.