How does Node.js handle asynchronous operations, and what are the differences between callbacks, promises, and async/await? Can you explain the event loop in Node.js and how it affects performance, especially when dealing with I/O-bound tasks? What is the purpose of middleware in Express.js, and can you provide an example of how you would create and use custom middleware in an application?
Check out your Company Bowl for anonymous work chats.