Read: 06 Node, Express, and APIs - cindyweiss/seattle-301d55 GitHub Wiki

What is NODE? Node.js is a program we can use to execute JavaScript on our computers. In other words, it’s a JavaScript runtime. NPM, is the JavaScript Package Manager

What Is Node.js Used For? Now that we know what Node and NPM are, we can turn our attention to the first of their common uses: they’re used to install (npm) and run (Node) various build tools — tools designed to automate the process of developing a modern JavaScript application.These build tools come in all shapes and sizes, and you won’t get far in a modern JavaScript landscape without bumping into them. They can be used for anything from bundling your JavaScript files and dependencies into static assets, to running tests, or automatic code linting and style checking.

Next we come to one of the biggest use cases for Node.js — running JavaScript on the server. Node.js, however, is the first implementation to gain any real traction, and it provides some unique benefits, compared to traditional languages. Node now plays a critical role in the technology stack of many high-profile companies. Let’s have a look at what those benefits are.

What Are the Advantages of Node.js? Aside from speed and scalability, an often touted advantage of using JavaScript on a web server — as well as in the browser — is that your brain no longer needs to switch modes. You can do everything in the same language, which, as a developer, makes you more productive (and hopefully, happier). For example, you can share code between the server and the client. Another of Node’s big pluses is that it speaks JSON. JSON is probably the most important data exchange format on the Web, and the lingua franca for interacting with object databases (such as MongoDB). JSON is ideally suited for consumption by a JavaScript program, meaning that when you’re working with Node, data can flow neatly between layers without the need for reformatting. You can have one syntax from browser to server to database.