Most systems don't work in isolations. We want to integrate with other systems like databases and third-party services using OAuth, RESTful or SOAP APIs. So Node.js provides all of that, the various modules or packages that you can find on npm.
The most common databases are supported. There are a lot of drivers and a lot of libraries that you can use to connect to those databases. Now, how Node.js fits into the web development architecture. Typically, Node.js is used to build RESTful APIs, and then you would use Single-Page Application like Backbone, Angular, that's called a M.E.A.N stack: Mongo, Express, Angular and Node, Ember, React or any other MVC framework, Front-end MVC framework.
Now, it's still possible to build the traditional BoB application with Node.js, but most of the times, we are building single-page applications, and using Node.js for APIs. So, for server-side rendering or for traditional application that renders everything on the server-side, another name would be, "Thick server" versus single-page application or "Thick line."
You can use pretty much any template engine that's available on the browser. I'm pretty sure, it's important to Node.js, but too because it's so easy to reuse that code and that library on the server-side. One of my favorite libraries is Jade and then Handlebars, it's very similar to HTML. It uses curly braces. So the beauty of the RESTful APIs and the JSON format is that you can build your API once, and then you can reuse that API across different platforms.
In the browser, we don't have any File System Modules, etc. So, what is Node.js at the core? What is under the hood? Typically, the three main things in Node.js is Libev, which is event loop, and then we have Async I/O, and Abstraction to libEio. This picture illustrates how they interact.