What is Node.JS and its Pros and Cons
JavaScript is a client-side development tool.
Node.js is a server-side development tool. And it's only a runtime environment based on Chrome V8 so we don't write some code in Node.js.
Pros:
JavaScript on a server
First I want to emphasis that Node.JS is just a runtime environment of JavaScript. Express is based on Node.js. So based on Node.JS, the project can inherit JavaScript merit (lightweight, fewer code compared with Java or C) and can use its libraries.
And front-end and back-end can use the same language.
Code for microservices
Node module can help implement microservice philosophy. To be specfic, a project is made up of many modules which are isolated and independent. You can just fix or add one module, which doesn't influence other module.
Fast
Node.JS is event-based and single thread . It can process several events concurrently, which leads to improve CPU usage.
Support and Community
There are many companies which use Node.js. And there are many people in Node.js community to provide many solutions and solve the issues.
Packages
There are many packages to solve different problems in NPM. NPM is a place that can install packages.
Easy to learn
Node.JS inherit many features of JavaScript.
Cons:
CPU bottleneck
Because Node.JS is single-thread. So if there are many heavy-computation requests, the thread pool will block. Sometimes we can "expand" the thread pool.
Immature tool
NPM registry is not mature.
Few experienced developers
There are few Node.JS developers who has 2 years or more experience.