npm is a package management framework for Node.js. When using Node.js, you’ll also need to use Node Package Manager, or npm for short. However, you can also use Node.js to build your private blockchain. Node.js therefore shines in building fast, data-intensive, and real-time network applications, such as Uber and PayPal. You can see a great example of asynchronous programming in Node.js here. Basically, this means that a Node-based server does not wait for an API to return data. The main thing to remember is that Node.js is asynchronous and event-driven, which means it can support hundreds of simultaneous calls in the event loop.
Node.js is an open-source runtime environment, which allows developers to create networked applications and web-servers in JavaScript. A simple guide on how to set up Node.js development environment on macOS.