Introduction to Node.js - GeeksforGeeks

10 Nov, 2021
Introduction: Node.js is an open-source and cross-platform runtime environment for executing JavaScript code outside a browser. You need to remember that NodeJS is not a framework and it’s not a programming language. Most people are confused and understand it’s a framework or a programming language. We often use Node.js for building back-end services like APIs like Web App or Mobile App. It’s used in production by large companies such as Paypal, Uber, Netflix, Walmart, and so on.
Features of NodeJS: There are other programming languages also which we can use to build back-end services so what makes Node.js different I am going to explain.
It’s easy to get started and can be used for prototyping and agile developmentIt provides fast and highly scalable servicesIt uses JavaScript everywhere, so it’s easy for a JavaScript programmer to build back-end services using Node.jsSource code cleaner and consistent.Large ecosystem for open source library.It has Asynchronous or Non-blocking nature.
It’s easy to get started and can be used for prototyping and agile development
It provides fast and highly scalable services
It uses JavaScript everywhere, so it’s easy for a JavaScript programmer to build back-end services using Node.js
Source code cleaner and consistent.
Large ecosystem for open source library.
It has Asynchronous or Non-blocking nature.
Advantages of NodeJS: Here are the benefits of using Node.js  
Easy Scalability: Developers prefer to use Node.js because it is easily scaling the application in both horizontal and vertical directions. We can also add extra resources during the scalability of the application.Real-time web apps: If you are building a web app you can also use PHP, and it will take the same amount of time when you use Node.js, But if I am talking about building chat apps or gaming apps Node.js is much more preferable because of faster synchronization. Also, the event loop avoids HTTP overloaded for Node.js development.Fast Suite: NodeJs runs on the V8 engine developed by Google. Event loop in NodeJs handles all asynchronous operation so NodeJs acts like a fast suite and all the operations can be done quickly like reading or writing in the database, network connection, or file systemEasy to learn and code: NodeJs is easy to learn and code because it uses JavaScript. If you are a front-end developer and have a good grasp of JavaScript you can easily learn and build the application on NodeJSAdvantage of Caching: It provides the caching of a single module. Whenever there is any request for the first module, it gets cached in the application memory, so you don’t need to re-execute the code.Data Streaming: In NodeJs HTTP request and response are considered as two separate events. They are data stream so when you process a file at the time of loading it will reduce the overall time and will make it faster when the data is presented in the form of transmissions. It also allows you to stream audio and video files at lightning speed.Hosting: PaaS (Platform as a Service) and Heroku are the hosting platforms for NodeJS application deployment which is easy to use without facing any issue.Corporate Support: Most of the well-known companies like Walmart, Paypal, Microsoft, Yahoo are using NodeJS for building the applications. NodeJS uses JavaScript, so most of the companies are combining front-end and backend Teams together into a single unit.
Easy Scalability: Developers prefer to use Node.js because it is easily scaling the application in both horizontal and vertical directions. We can also add extra resources during the scalability of the application.
Real-time web apps: If you are building a web app you can also use PHP, and it will take the same amount of time when you use Node.js, But if I am talking about building chat apps or gaming apps Node.js is much more preferable because of faster synchronization. Also, the event loop avoids HTTP overloaded for Node.js development.
Fast Suite: NodeJs runs on the V8 engine developed by Google. Event loop in NodeJs handles all asynchronous operation so NodeJs acts like a fast suite and all the operations can be done quickly like reading or writing in the database, network connection, or file system
Easy to learn and code: NodeJs is easy to learn and code because it uses JavaScript. If you are a front-end developer and have a good grasp of JavaScript you can easily learn and build the application on NodeJS
Advantage of Caching: It provides the caching of a single module. Whenever there is any request for the first module, it gets cached in the application memory, so you don’t need to re-execute the code.
Data Streaming: In NodeJs HTTP request and response are considered as two separate events. They are data stream so when you process a file at the time of loading it will reduce the overall time and will make it faster when the data is presented in the form of transmissions. It also allows you to stream audio and video files at lightning speed.
Hosting: PaaS (Platform as a Service) and Heroku are the hosting platforms for NodeJS application deployment which is easy to use without facing any issue.
Corporate Support: Most of the well-known companies like Walmart, Paypal, Microsoft, Yahoo are using NodeJS for building the applications. NodeJS uses JavaScript, so most of the companies are combining front-end and backend Teams together into a single unit.
Application of NodeJS: NodeJS should be preferred to build:
Real-Time Chats,
Complex Single-Page applications,
Real-time collaboration tools,
Streaming apps
JSON APIs based application
Installing Node and using It:
Using Website:  
1. You can visit the link Download Node and download LTS version.
2. After installing the node you can check your node version in command prompt using command..
~ $node --version
3. After that, you can just create a folder and add a file here for example app.js. To run this file you need to execute command...
first app $node app.js
4. Node Modules: There are some built-in modules that you can use to create your applications. Some popular modules are- OS, fs, events, HTTP, URL and then you can include these modules in your file using these lines.
var fs = require('fs');
5. Here is an example of how to include an HTTP module to build the server... 
javascript
var http = require('http');  // Create a server object:http.createServer(function (req, res) {      // Write a response to the client    res.write('GeeksForGeeks');       // End the response      res.end();   // The server object listens on port 8080}).listen(8080); 
This will listen to the server on port 8080. Once you will run your file in command prompt it will execute your file and listen to the server on this port. You can also create your own module and include it in your file.  
Using NPM: NPM is a Node Package Manager that provides packages to download and use. It contains all the files and modules that you require in your application. To install any package you need to execute a command...  
npm install 
This is an example of using the Events module. 
javascript
var events = require('events');var eventEmitter = new events.EventEmitter();  // Create an event handler:var myEventHandler = function () {        console.log('Welcome to GeeksforGeeks');}  // Assign the event handler to an event:eventEmitter.on('geeks', myEventHandler);  // Fire the 'geeks' event:eventEmitter.emit('geeks');
So this is how you can start with node and build your own applications. There are some frameworks of the node which you can use to build your applications. Some popular frameworks of node are...Express.js, Socket.io, Koa.js, Meteor.js, Sail.js. 
realabbas
ghoshsuman0129
Node.js
Articles
JavaScript
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Tree Traversals (Inorder, Preorder and Postorder)
SQL | Join (Inner, Left, Right and Full Joins)
find command in Linux with examples
Analysis of Algorithms | Set 1 (Asymptotic Analysis)
Time Complexity and Space Complexity
Difference between var, let and const keywords in JavaScript
Convert a string to an integer in JavaScript
Differences between Functional Components and Class Components in React
How to calculate the number of days between two dates in javascript?
File uploading in React.js