Bringing the browser-language JavaScript to the server has been a out-of-the-box idea with a more experimental character in the beginning. But ever since the release of the node package manager (npm) the ecosystem exploded in size and revolutionized the management of dependencies in the frontend alongside with it.
With the fast runtime and the small overhead, a Node.js process is a perfect platform for small microservices. Communicating using HTTP or Message Queues, having only a very small codebase and a very narrow purpose it allows for rapid development and compelling results.
Sharing templates between your frontend and your backend, a seamless transition between both worlds—Universal Rendering is the cream of the crop when it comes to full-stack development with JavaScript. But also small helpers working together with large CMS systems is a great application of this technology.