Introduction to NodeJS

Introduction: Node.js is an open source and cross-platform runtime environment for executing JavaScript code outside of a browser. You need to remember that NodeJS is not a framework and it’s not a programming language. Most of the 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, Wallmart 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.

  1. It’s easy to get started and can be used for prototyping and agile development
  2. It provide fast and highly scalable services
  3. It uses JavaScript everywhere so it’s easy for a JavaScript programmer to build back-end services using Node.js
  4. Source code more cleaner and consistent.
  5. Large ecosystem for open source library.
  6. It has Asynchronous or Non blocking nature.

Advantages of NodeJS:

Here are the benefits of using Node.js

  1. Easy Scalability: Developers prefer to use Node.js because it is easily scale the application in both horizontal and vertical direction. We can also add extra resources during the scalability of application.
  2. 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, event loop avoid HTTP overload for Node.js development.
  3. 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
  4. 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 on JavaScript you can easily learn and build the application on NodeJS
  5. Advantage of Caching: It provides the caching of 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.
  6. 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.
  7. Hosting: PaaS (Platform as a Service) and Heroku are the hosting platform for NodeJS application deployment which is easy to use without facing any issue.
  8. Corporate Support: Most of the well known companies like Wallmart, Paypal, Mirosoft, 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 on the link Downloand Node and download LTS version.
    2. After installing 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 which you can use to create your applications. Some of the 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 HTTP module to build the server…
      filter_none

      edit
      close

      play_arrow

      link
      brightness_4
      code

      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); 

      chevron_right

      
      

      This will listen to 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 in your file.

  • Using NPM: NPM is a Node Package Manager 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 command…
    npm install 

    I am going to show an example of using Events module.

    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    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');

    chevron_right

    
    

    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.



    My Personal Notes arrow_drop_up

    Full Stack Developer

    If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

    Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




    Article Tags :

    Be the First to upvote.


    Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.