What is Node.JS? A brief introduction and its pros and cons


What is Node.JS? A brief introduction and its pros and cons

1. What is Node.JS?

Node.JS is a platform built based on V8 JavaScript Engine - an interpreter that executes JavaScript code, making building web applications simple and easily extensible.

Node.JS was developed by Ryan Dahl in 2009 and can run on different operating systems, such as OS X, Microsoft Windows, Linux.

Why should we learn Node.JS?

  • Node.JS is written by JavaScript with robust communication. If you need help with Node.JS, you always have someone to support you.
  • Fast response. Thanks to non-blocking, Node.JS can process a thousand connections simultaneously without challenges.
  • Easy expansion. If you want to develop a website, the expendable function is an important advantage.

2. NPM: Node Package Manager 

A Detailed overview of NPM, Registry, CLI & it's related Components

Talking about Node.JS, one thing that cannot be overlooked is the build-in package manager using the NPM tool. It's installed by default under the Node.JS installer. The principle of the NPM module is a set of open, reusable components that can be installed through the online repository. Here are some popular NPM modules.

  • Express: Expressjs, a web development framework based on Sinatra and the standard platform for many of today's Node.JS applications.
  • Connect: Connect is an extensible HTTP server framework, providing a set of "high performance" plugins such as middleware, serves, and serves as a foundation for Express.
  • Socket.io and sockjs: The server-side component of the two most popular WebSocket today.
  • Jade: One of the popular template engines (HTML writing standard), based on HAML, is the foundation of Expressjs.
  • Mongodb and mongojs: The MongoDB package provides APIs for the MongoDB object database system in Node.JS.
  • Redis: user library.
  • CoffeeScript: CoffeeScript compiler allows developers to write Node.js programs using Coffee (to drink coffee is to write Node.JS).
  • Underscore (lodash, lazy): The library provides many utilities, most commonly used in Javascript, encapsulated in Node.JS, with different execution, promises to bring better performance.
  • Forever: Obviously, this is the most commonly used utility, which keeps the Node code running continuously.

These are just a few examples because there are actually many more powerful modules.

3. Node.JS' advantages and disadvantages

3.1. Advantages  

Getting started with Node.JS. Hello Everyone, | by Malav Live | Medium

3.1.1. JSON APIS

Compact REST/JSON APIs are what makes Node.JS shine. An event-driven, non-blocking I/O (Input/Output) mechanism and JavaScript-associated model are great choices for Web services in JSON.

3.1.2. Application/page

If you are going to write a page rendering application (Gmail?) Node.JS is a suitable choice. With the ability to process many Requests simultaneously, the response time is fast.

Node.JS can be your choice if the applications you intend to write don’t want it to reload the page, including a lot of requests from users that need fast performance to show professionalism.

3.1.3. Shelling tools Unix to work

Node.JS will make the most of Unix for the function. Node.JS can handle thousands of Processes and returns one thread that makes the performance maximum and be the best performance.

3.1.4. Data Flow

Regular websites send HTTP requests and receive responses (Data Flow). Assuming that you will need to handle an extremely large data stream, Node.JS will build Proxies to partition the data streams to ensure maximum operation for others. 

3.1.5. Real Web app

Suppose you build a chat application, feed, etc. Then Facebook, Twitter are typical examples of the real Web. 

3.2. Disadvantages

3.2.1. Resource-consuming

If you need to handle applications that consume CPU resources such as encoding video, converting files, decoding, encryption, etc., you shouldn't use Node.JS ( Node.js is written in C++ and Javascript, so it takes a little longer to pass a Node.JS compiler).

In this case, write a C++ Addon to integrate with Node.js for maximum performance increase. (The integration is very friendly and quick).

3.2.2. Node.JS and other languages

Node.JS is primitive like other programming languages. So don't expect Node.JS to be better than PHP, Ruby, Python, etc. But you still can have an application as expected, that's for sure.

With everything that predecessor languages own (longtime community, framework, CMS, open-source, etc.) If you or enterprises don’t know about Node.JS, the need to build important projects, developing business on Node.JS will not be a good option now.

3.2.3. NoSQL and Node.JS and Noob 

With Node.JS, NoSQL is the perfect combination if you are experienced with programming languages to develop projects. You know Node.JS through news, newspapers, friends, etc., and decide to build a project by Node.JS. However, the risk can be huge if you can’t comprehend it.

4. Applications

  • Amazon, eBay, Ebay, Linkedin, Microsoft, Paypal, Trello, Uber and many more famous names are using Node.JS. According to Paypal, using Node.JS can reduce response times by up to 35%.
  • Linkedin switched from Ruby to Node.JS to handle mobile traffic, and the number of servers used dropped from 30 to 3, which means a drop of nearly 90%.
  • Running on a server multi-platform, using Event-driven, Node.JS application can be run anywhere on Mac - Window - Linux, Moreover, Node.JS community is huge and completely free.

We, "Hachinet Software", are Vietnam-based software services with dedicated, dynamic, enthusiastic teams who always have made efforts to please customers' and partners' satisfaction. We specialize in the followings:

  1. Web application (.NET, JAVA, PHP, etc.)
  2. Framework (ASP, MVC, AngularJS, Angular6, Node JS, Vue JS)
  3. Mobile application: IOS (Swift, Object C), Android (Kotlin, Android)
  4. System applications (Cobol, ERP, etc.),
  5. New Technology (Blockchain, etc.).

If you are considering offshore development, please feel free to contact us.
Here is our contact information.

Account Manager: Quan (Japanese/English available)

Phone number: (+84) 2462 900 388

Email: contact@hachinet.com