What makes Node.js different from other platforms is in how it approaches I/O. It uses an event-loop in conjunction with asynchronous I/O, which allows it to achieve a high level of concurrency with a light footprint.
Typically, when a program needs some sort of external input, it does so in a synchronous fashion. The following line of code should be very familiar to any programmer:
var results = db.query("SELECT * FROM users"); print(results.username);
All we are doing here is querying a SQL database for a list of all users, and then we are printing out the first user's name. When querying a database like this, there are many intermediary steps that need to be taken, such as: