As a first step, it is really important to understand what Node.js is. Node.js is a JavaScript runtime using the V8 engine of Google Chrome. Node is not a programming language or even a framework.
Node.js is a composition of code and libraries including Libuv, OpenSSL, Zlib... All this will allow us, as developers, to interact through different protocols such as http, tcp/ip, or udp with your computer file system, network etc…
Node.js is like a toolbox that can allow you to realize a vast amount of projects of various nature (and not only http APIs as many think... for example NodeSecure). That's why we'll talk about runtime environments.
Bonus: Things to Love About Working with Node.js (Matteo Collina)
⬅️ TypeScript: 🐲 Ressources on types | ➡️ 🐢 Node.js: 🐥 Resources for beginners