Explain the non-blocking I/O model in Node.js. Non-blocking I/O means the application doesn't wait for a task (like reading a file or querying
database) to complete before moving to the next one. Node.js uses callbacks, promises, or
sync/await to handle the results when they're ready.
📌 Example:
const fs = require('fs');
fs.readFile('file.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
console.log('Reading file...');
You’ll see "Reading file..." first, even though the file is being read.