Node.js is an open source and cross platform javascript runtime environment for writing server side applications , command line tools , and other types of application that can run outside the browser. It runs on Google V8 engine.
It was designed and built by Ryan Dhal in 2009.
Before the advent of NodeJs , Javascript usage was limited mostly to the browser. We use Javascript for tasks like form validation , mouse click handling , animation , responsive design , etc. With Javascript running on the server , companies of varying sizes have been able to cut development time and cost as the skilled personnel used for developing front end applications can easily jump onto building backend using same technology .
Node.js is freely available for download at nodejs Ensure you download the Latest Stable edition LTS .
To start learning nodejs , you need to setup a local working environment. You will need the following :
- An IDE (We reconmmend Visual Studio Code)
- Git => This is for version control
- The Nodejs runtime (Already downloaded above)
- A github account for collaboration and code examples
Node.js is single threaded , and event driven. You should take out time to learn Operating System , and the following basic :
- Lexical Structure
- Expressions
- Types
- Variables
- Functions
- this
- Arrow Functions
- Loops
- Scopes
- Arrays
- Template Literals
- Semicolons
- Strict Mode
- ECMAScript 6, 2016, 2017
- Timers
- Async and Await
- Closures
At Bigjara , we used Node.js for a whole lot of our application. We use Node.js to build the followiing :
- Productivity tools
- CRM : We use Nodejs to build Customer Management tools that enable us to keep in touch with our customers. We power our SMS and Email sending and also notifications using Node.js
- E-commerce : We use Nodejs for building ecommerce Applications for our clients
- Business Automation : We use Nodejs to automate business processes like Sales and Expense tracking , etc.
Aside what we use Node.js for at Bigjara , Nodejs is primarily used for building :
- API's
- Realtime Applications
- Mobile Apps (React Native )
- Desktop Apps (Electron)