Web servers don’t need to be big, general-purpose applications. Over the years they’ve become more complex, delivering all kinds of content to your browser.
But what if you need something focused? Internet Information Server and Apache are overkill, and even next-gen servers like nginx require significant resources. That’s where Node.js comes in. Instead of taking an existing web server and letting you shoehorn your application around its features and APIs, Node.js takes a very different approach. You don’t have a server, you just have a kit of parts that you can assemble into your own custom-built web appliance that handles the inputs and outputs you’ve designed – it’s a router that takes inputs and gives outputs, an ‘if this, then that’ tool for your web applications.