SlideShare a Scribd company logo
Node JS
A Brief Overview on building real-time web
applications
What is Node JS
Node.js is a server-side JavaScript runtime environment that allows developers to
build scalable, high-performance applications. It is built on top of the Google
Chrome V8 JavaScript engine, which compiles JavaScript code directly into
native machine code. Node.js is open-source and has a large and active
developer community.
Node.js is useful because it provides a number of advantages for building server-
side applications, including:
1. High-performance: Node.js uses a non-blocking, event-driven I/O model that
allows it to handle a large number of concurrent connections efficiently. This
makes it ideal for building applications that need to handle a large number of
requests at the same time.
2. Scalability: Because of its non-blocking I/O model, Node.js can scale horizontally
by adding more servers to a cluster, or vertically by adding more CPU or memory
to a single server.
3. Cross-platform: Node.js can run on a variety of platforms, including Windows,
macOS, and Linux.
4. Rich ecosystem: Node.js has a large and active ecosystem of modules and
libraries that can be easily installed via the Node Package Manager (NPM). This
makes it easy to add functionality to your application without having to write
everything from scratch.
5. JavaScript: Node.js allows developers to use JavaScript on the server-side, which
makes it easier to build full-stack applications. This means that developers can use
the same language and programming paradigms on both the server and client-side,
which can reduce the complexity of building applications.
Overall, Node.js is a powerful and versatile tool that is useful for building a wide
range of server-side applications, including web servers, APIs, and real-time
applications.
JAVASCRIPT V8 ENGINE
• The V8 engine is a JavaScript engine that powers Google Chrome and Node.js. It is
an open-source, high-performance JavaScript engine that compiles and executes
JavaScript code. The V8 engine was originally developed by Google for the
Chrome web browser, but it has since been adopted by other projects and
platforms, including Node.js.
• The V8 engine is designed to execute JavaScript code as fast as possible. It
achieves this by using a Just-In-Time (JIT) compilation approach, where
JavaScript code is compiled to native machine code at runtime. This allows the
V8 engine to execute JavaScript code at speeds that are comparable to, or even
faster than compiled languages like C or C++.
• The V8 engine also includes a number of other features that help to improve its
performance and efficiency. For example, it uses a garbage collector to
automatically manage memory allocation and deallocation, which can help to
prevent memory leaks and improve performance. It also includes a number of
optimizations, such as inline caching, that help to reduce the overhead of
executing JavaScript code.
• Overall, the V8 engine is a key component of modern web development and is
used by millions of developers around the world to build high-performance web
applications and services.
Features in Node JS
1. Event-driven architecture: Node.js uses an event-driven, non-blocking I/O model that
makes it ideal for building real-time, data-intensive applications.
2. Modules: Node.js has a built-in module system that allows developers to create reusable
code and separate different parts of their application.
3. NPM: Node Package Manager (NPM) is a package manager that is used to install and
manage third-party libraries and packages for Node.js.
4. Callbacks: Callbacks are functions that are passed as arguments to other functions and are
called when that function has completed its task.
5. Promises: Promises are objects that represent a value that may not be available yet, but will
be resolved at some point in the future.
6. Async/await: Async/await is a modern syntax for handling asynchronous
operations in JavaScript that makes code easier to read and write.
7. Streams: Streams are objects that allow data to be processed in small chunks,
rather than all at once, which can be more efficient and memory-friendly.
8. Buffers: Buffers are objects that represent a chunk of memory that can be used
to store binary data.
9. Express.js: Express.js is a popular Node.js framework that simplifies the process
of building web applications.
NPM – NODE PACKAGE MANAGER
• NPM stands for "Node Package Manager," and it is a command-line tool that
comes bundled with Node.js. NPM is the default package manager for Node.js,
and it is used to install, manage, and share packages, or modules, of reusable
code written in JavaScript.
• With NPM, developers can easily find and install third-party packages and libraries
for their Node.js applications. NPM also makes it easy to manage the
dependencies between packages, which can be a complex task when dealing
with large projects.
• NPM provides a centralized repository of over a million packages, which
developers can browse and search using the npm command-line interface or the
npm website. NPM also allows developers to publish their own packages, making
it easy to share their code with others.
NPM INSTALL
When you run the npm install command in a Node.js project, NPM reads the
package.json file in the root directory of the project to determine which
dependencies are required for the project. It then downloads and installs those
dependencies into the node_modules directory.
Here's what happens in more detail:
1.NPM reads the package.json file to determine the required dependencies for the
project. The package.json file contains a list of dependencies, along with their
versions.
2. NPM checks if the required dependencies are already installed in the
node_modules directory. If they are not, it will download and install them.
3. NPM also installs the dependencies of the required dependencies, creating a
dependency tree. This ensures that all required packages and their dependencies
are installed.
4. If a specific version of a package is required, NPM will download and install that
version. If a version range is specified, NPM will download and install the latest
version that satisfies the range.
NPM will create a package-lock.json file, which is used to lock the installed package
versions and ensure consistency across different installations.
The npm install command is used to install dependencies for your project without
saving them to the package.json file. This means that the installed packages will not
be tracked as dependencies in your project, and will not be automatically installed
when you clone your project on a different machine. The npm install command is
typically used for installing development dependencies or packages that are only
needed temporarily.
On the other hand, the npm install --save command is used to install
dependencies and automatically add them to your package.json file. This means
that the installed packages will be tracked as dependencies in your project, and
will be automatically installed when you clone your project on a different machine.
The --save flag tells NPM to update your package.json file with the installed
package and its version information. The --save flag is typically used for installing
production dependencies or packages that are required for the long-term stability
of your project.
Package.json is a metadata file in Node.js projects that contains important
information about the project, such as its name, version, description, author, license,
and dependencies. It's a standard file that is used by Node.js package managers,
such as NPM, to install and manage project dependencies.
Here are some of the key fields in a package.json file:
name: The name of the project. This should be a unique name that identifies the
project.
version: The version of the project. This should follow the Semantic Versioning
convention.
description: A short description of the project.
main: The entry point of the project. This is the file that will be executed when the
project is run.
Package.json
scripts: A list of scripts that can be executed using NPM. This can include scripts
for testing, building, and running the project.
dependencies: A list of packages that the project depends on. These packages will
be installed automatically when the project is installed using NPM.
package-lock.json is a file generated by NPM that provides a detailed description
of the dependencies installed in a Node.js project. It's used to lock the installed
package versions, ensuring that the project has consistent dependencies across
different installations or environments.
When you run npm install, NPM reads the package.json file and installs the
required dependencies into the node_modules directory. It also generates the
package-lock.json file, which contains a detailed description of the installed
packages and their dependencies.
The package-lock.json file includes the following information:
1. The name, version, and description of each installed package.
2. The resolved version of each installed package and its dependencies.
3. The URLs of the package repositories and the checksums of the downloaded
The package-lock.json file is used by NPM to ensure that the same versions of
packages are installed across different environments or machines. This is important
to avoid any conflicts or discrepancies that might arise due to different versions of
the same package being installed in different environments.
It's recommended to commit the package-lock.json file to version control, along
with the package.json file, to ensure that the project dependencies are consistent
and reproducible across different installations or environments.
Package.json
In Node.js, there are multiple ways to create a server and implement routing. Here
are some of the commonly used methods:
1. Using the http module:
The built-in http module provides basic server functionality. You can create an
HTTP server using the http.createServer() method and handle requests manually.
Routing can be implemented by inspecting the request URL and responding
accordingly, as shown in the previous example.
2. Using the Express framework:
Express is a popular, minimalistic web application framework for Node.js that
simplifies server creation and routing. It provides an expressive API for defining
routes, handling HTTP methods, and more.
Server Creation
You can use the app.get(), app.post(), app.put(), app.delete(), and other methods to
handle different HTTP methods and define routes with ease.
3. Using other web frameworks:
Apart from Express, there are several other web frameworks available for Node.js,
such as Koa, Hapi, and Fastify. These frameworks provide their own APIs for server
creation, routing, middleware, and more. They offer varying levels of abstraction and
features, allowing you to choose based on your specific requirements.
4. Using middleware-based routers:
Middleware-based routers, such as connect or express.Router(), allow you to
organize your routes into separate modules or middleware functions. This helps
modularize your code and keep your routes organized and reusable.
5. Using third-party routing libraries:
There are numerous third-party routing libraries available for Node.js, such as
Director, Page.js, and Director, that provide additional routing capabilities or
different routing paradigms. These libraries often offer unique features or a
different approach to routing, allowing you to choose the one that best suits your
needs.
These are just a few common methods for creating a server and implementing
routing in Node.js. The choice depends on your specific requirements, project
complexity, and personal preferences. Express is the most widely used and highly
recommended option due to its simplicity and popularity in the Node.js
ecosystem.
One of the building blocks of node is the http module that we use for creating network
in applications. For example we can create webserver that listens for http request on
given port and with this we can easily create a backend service for client applications
like web application that we build with angular.
Http Server
Description: This example creates a basic HTTP server that listens on port 3000. When a request
is received, it responds with a 200 status code and sends the "Hello, World!" message as the
response body.
Here's a basic example of how to create a simple web server using Express in
Node.js:
Express – Server Creation
In this example, we first import the Express module using the require() function. We then create
an instance of the Express app using the express() function.
We define a route using the app.get() method, which listens for GET requests to the root path (/)
and responds with the message "Hello, World!" using the res.send() method.
Finally, we start the server by calling the app.listen() method and passing in the port
number to listen on (3000 in this case).
When you run this code and navigate to http://localhost:3000 in your browser, you
should see the message "Hello, World!" displayed on the page. This is a basic
example of how to use Express to create a web server in Node.js.
EXPRESS
express.json() Middleware: This middleware is responsible for parsing the JSON data
sent in the body of HTTP requests. When a client sends a request with a JSON payload
(e.g., in a POST or PUT request), this middleware will parse that JSON data and make it
available as a JavaScript object in the request.body property. This makes it easy to work
with JSON data in Express routes.
EXPRESS
Express
Let’s
Innovate
Together
www.expeed.com

More Related Content

Similar to Node JS - A brief overview on building real-time web applications

How to Install Node.js and NPM on Windows and Mac?
How to Install Node.js and NPM on Windows and Mac?How to Install Node.js and NPM on Windows and Mac?
How to Install Node.js and NPM on Windows and Mac?
Inexture Solutions
 
Node.js
Node.jsNode.js
Halton Software Peer 2 Peer Meetup #10
Halton Software Peer 2 Peer Meetup #10Halton Software Peer 2 Peer Meetup #10
Halton Software Peer 2 Peer Meetup #10
David Ashton
 
Build server
Build serverBuild server
Build server
Christophe Vanlancker
 
NodeJS guide for beginners
NodeJS guide for beginnersNodeJS guide for beginners
NodeJS guide for beginners
Enoch Joshua
 
Understanding Node.js and Django.docx
Understanding Node.js and Django.docxUnderstanding Node.js and Django.docx
Understanding Node.js and Django.docx
Savior_Marketing
 
3 Things Everyone Knows About Node JS That You Don't
3 Things Everyone Knows About Node JS That You Don't3 Things Everyone Knows About Node JS That You Don't
3 Things Everyone Knows About Node JS That You Don't
F5 Buddy
 
Intro to Node.js (v1)
Intro to Node.js (v1)Intro to Node.js (v1)
Intro to Node.js (v1)
Chris Cowan
 
Node.js.pdf
Node.js.pdfNode.js.pdf
Node.js.pdf
gulfam ali
 
Introduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azureIntroduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azure
Colin Mackay
 
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous  Blocking or synchronous.pdfNode Js Non-blocking or asynchronous  Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
DarshanaMallick
 
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Angular Part 3 (Basic knowledge)
Angular Part 3 (Basic knowledge)Angular Part 3 (Basic knowledge)
Angular Part 3 (Basic knowledge)
Rohit Singh
 
Improving build solutions dependency management with webpack
Improving build solutions  dependency management with webpackImproving build solutions  dependency management with webpack
Improving build solutions dependency management with webpack
NodeXperts
 
S&T What I know about Node 110817
S&T What I know about Node 110817S&T What I know about Node 110817
S&T What I know about Node 110817
Dan Dineen
 
Wonderful World of Maven
Wonderful World of MavenWonderful World of Maven
Wonderful World of Maven
Justin J. Moses
 
The Positive and Negative Aspects of Node.js Web App Development.pdf
The Positive and Negative Aspects of Node.js Web App Development.pdfThe Positive and Negative Aspects of Node.js Web App Development.pdf
The Positive and Negative Aspects of Node.js Web App Development.pdf
WDP Technologies
 
Reactjs Basics
Reactjs BasicsReactjs Basics
Reactjs Basics
Hamid Ghorbani
 
How create react app help in creating a new react applications
How create react app help in creating a new react applications How create react app help in creating a new react applications
How create react app help in creating a new react applications
Concetto Labs
 

Similar to Node JS - A brief overview on building real-time web applications (20)

How to Install Node.js and NPM on Windows and Mac?
How to Install Node.js and NPM on Windows and Mac?How to Install Node.js and NPM on Windows and Mac?
How to Install Node.js and NPM on Windows and Mac?
 
Node.js
Node.jsNode.js
Node.js
 
Halton Software Peer 2 Peer Meetup #10
Halton Software Peer 2 Peer Meetup #10Halton Software Peer 2 Peer Meetup #10
Halton Software Peer 2 Peer Meetup #10
 
Build server
Build serverBuild server
Build server
 
NodeJS guide for beginners
NodeJS guide for beginnersNodeJS guide for beginners
NodeJS guide for beginners
 
Understanding Node.js and Django.docx
Understanding Node.js and Django.docxUnderstanding Node.js and Django.docx
Understanding Node.js and Django.docx
 
3 Things Everyone Knows About Node JS That You Don't
3 Things Everyone Knows About Node JS That You Don't3 Things Everyone Knows About Node JS That You Don't
3 Things Everyone Knows About Node JS That You Don't
 
Intro to Node.js (v1)
Intro to Node.js (v1)Intro to Node.js (v1)
Intro to Node.js (v1)
 
Node.js.pdf
Node.js.pdfNode.js.pdf
Node.js.pdf
 
Introduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azureIntroduction to node js - From "hello world" to deploying on azure
Introduction to node js - From "hello world" to deploying on azure
 
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous  Blocking or synchronous.pdfNode Js Non-blocking or asynchronous  Blocking or synchronous.pdf
Node Js Non-blocking or asynchronous Blocking or synchronous.pdf
 
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Node J pdf.docx
 
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Node J pdf.docx
 
Angular Part 3 (Basic knowledge)
Angular Part 3 (Basic knowledge)Angular Part 3 (Basic knowledge)
Angular Part 3 (Basic knowledge)
 
Improving build solutions dependency management with webpack
Improving build solutions  dependency management with webpackImproving build solutions  dependency management with webpack
Improving build solutions dependency management with webpack
 
S&T What I know about Node 110817
S&T What I know about Node 110817S&T What I know about Node 110817
S&T What I know about Node 110817
 
Wonderful World of Maven
Wonderful World of MavenWonderful World of Maven
Wonderful World of Maven
 
The Positive and Negative Aspects of Node.js Web App Development.pdf
The Positive and Negative Aspects of Node.js Web App Development.pdfThe Positive and Negative Aspects of Node.js Web App Development.pdf
The Positive and Negative Aspects of Node.js Web App Development.pdf
 
Reactjs Basics
Reactjs BasicsReactjs Basics
Reactjs Basics
 
How create react app help in creating a new react applications
How create react app help in creating a new react applications How create react app help in creating a new react applications
How create react app help in creating a new react applications
 

More from Expeed Software

In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
Expeed Software
 
Comprehensive Guide on API Automation Testing
Comprehensive Guide on API Automation TestingComprehensive Guide on API Automation Testing
Comprehensive Guide on API Automation Testing
Expeed Software
 
What is Devops? What are the Fundamentals of it?
What is Devops? What are the Fundamentals of it?What is Devops? What are the Fundamentals of it?
What is Devops? What are the Fundamentals of it?
Expeed Software
 
The Art of Penetration Testing in Cybersecurity.
The Art of Penetration Testing in Cybersecurity.The Art of Penetration Testing in Cybersecurity.
The Art of Penetration Testing in Cybersecurity.
Expeed Software
 
Why is Cybersecurity Important in the Digital World
Why is Cybersecurity Important in the Digital WorldWhy is Cybersecurity Important in the Digital World
Why is Cybersecurity Important in the Digital World
Expeed Software
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
 
Springboot - A milestone framework in Java Development
Springboot - A milestone framework in Java DevelopmentSpringboot - A milestone framework in Java Development
Springboot - A milestone framework in Java Development
Expeed Software
 
What makes Flutter the best cross platform sdk
What makes Flutter the best cross platform sdkWhat makes Flutter the best cross platform sdk
What makes Flutter the best cross platform sdk
Expeed Software
 

More from Expeed Software (8)

In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Comprehensive Guide on API Automation Testing
Comprehensive Guide on API Automation TestingComprehensive Guide on API Automation Testing
Comprehensive Guide on API Automation Testing
 
What is Devops? What are the Fundamentals of it?
What is Devops? What are the Fundamentals of it?What is Devops? What are the Fundamentals of it?
What is Devops? What are the Fundamentals of it?
 
The Art of Penetration Testing in Cybersecurity.
The Art of Penetration Testing in Cybersecurity.The Art of Penetration Testing in Cybersecurity.
The Art of Penetration Testing in Cybersecurity.
 
Why is Cybersecurity Important in the Digital World
Why is Cybersecurity Important in the Digital WorldWhy is Cybersecurity Important in the Digital World
Why is Cybersecurity Important in the Digital World
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Springboot - A milestone framework in Java Development
Springboot - A milestone framework in Java DevelopmentSpringboot - A milestone framework in Java Development
Springboot - A milestone framework in Java Development
 
What makes Flutter the best cross platform sdk
What makes Flutter the best cross platform sdkWhat makes Flutter the best cross platform sdk
What makes Flutter the best cross platform sdk
 

Recently uploaded

zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 

Recently uploaded (20)

zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 

Node JS - A brief overview on building real-time web applications

  • 1. Node JS A Brief Overview on building real-time web applications
  • 2. What is Node JS Node.js is a server-side JavaScript runtime environment that allows developers to build scalable, high-performance applications. It is built on top of the Google Chrome V8 JavaScript engine, which compiles JavaScript code directly into native machine code. Node.js is open-source and has a large and active developer community. Node.js is useful because it provides a number of advantages for building server- side applications, including: 1. High-performance: Node.js uses a non-blocking, event-driven I/O model that allows it to handle a large number of concurrent connections efficiently. This makes it ideal for building applications that need to handle a large number of requests at the same time.
  • 3. 2. Scalability: Because of its non-blocking I/O model, Node.js can scale horizontally by adding more servers to a cluster, or vertically by adding more CPU or memory to a single server. 3. Cross-platform: Node.js can run on a variety of platforms, including Windows, macOS, and Linux. 4. Rich ecosystem: Node.js has a large and active ecosystem of modules and libraries that can be easily installed via the Node Package Manager (NPM). This makes it easy to add functionality to your application without having to write everything from scratch.
  • 4. 5. JavaScript: Node.js allows developers to use JavaScript on the server-side, which makes it easier to build full-stack applications. This means that developers can use the same language and programming paradigms on both the server and client-side, which can reduce the complexity of building applications. Overall, Node.js is a powerful and versatile tool that is useful for building a wide range of server-side applications, including web servers, APIs, and real-time applications. JAVASCRIPT V8 ENGINE • The V8 engine is a JavaScript engine that powers Google Chrome and Node.js. It is an open-source, high-performance JavaScript engine that compiles and executes JavaScript code. The V8 engine was originally developed by Google for the Chrome web browser, but it has since been adopted by other projects and platforms, including Node.js.
  • 5. • The V8 engine is designed to execute JavaScript code as fast as possible. It achieves this by using a Just-In-Time (JIT) compilation approach, where JavaScript code is compiled to native machine code at runtime. This allows the V8 engine to execute JavaScript code at speeds that are comparable to, or even faster than compiled languages like C or C++. • The V8 engine also includes a number of other features that help to improve its performance and efficiency. For example, it uses a garbage collector to automatically manage memory allocation and deallocation, which can help to prevent memory leaks and improve performance. It also includes a number of optimizations, such as inline caching, that help to reduce the overhead of executing JavaScript code. • Overall, the V8 engine is a key component of modern web development and is used by millions of developers around the world to build high-performance web applications and services.
  • 6. Features in Node JS 1. Event-driven architecture: Node.js uses an event-driven, non-blocking I/O model that makes it ideal for building real-time, data-intensive applications. 2. Modules: Node.js has a built-in module system that allows developers to create reusable code and separate different parts of their application. 3. NPM: Node Package Manager (NPM) is a package manager that is used to install and manage third-party libraries and packages for Node.js. 4. Callbacks: Callbacks are functions that are passed as arguments to other functions and are called when that function has completed its task. 5. Promises: Promises are objects that represent a value that may not be available yet, but will be resolved at some point in the future.
  • 7. 6. Async/await: Async/await is a modern syntax for handling asynchronous operations in JavaScript that makes code easier to read and write. 7. Streams: Streams are objects that allow data to be processed in small chunks, rather than all at once, which can be more efficient and memory-friendly. 8. Buffers: Buffers are objects that represent a chunk of memory that can be used to store binary data. 9. Express.js: Express.js is a popular Node.js framework that simplifies the process of building web applications.
  • 8. NPM – NODE PACKAGE MANAGER • NPM stands for "Node Package Manager," and it is a command-line tool that comes bundled with Node.js. NPM is the default package manager for Node.js, and it is used to install, manage, and share packages, or modules, of reusable code written in JavaScript. • With NPM, developers can easily find and install third-party packages and libraries for their Node.js applications. NPM also makes it easy to manage the dependencies between packages, which can be a complex task when dealing with large projects. • NPM provides a centralized repository of over a million packages, which developers can browse and search using the npm command-line interface or the npm website. NPM also allows developers to publish their own packages, making it easy to share their code with others.
  • 9. NPM INSTALL When you run the npm install command in a Node.js project, NPM reads the package.json file in the root directory of the project to determine which dependencies are required for the project. It then downloads and installs those dependencies into the node_modules directory. Here's what happens in more detail: 1.NPM reads the package.json file to determine the required dependencies for the project. The package.json file contains a list of dependencies, along with their versions. 2. NPM checks if the required dependencies are already installed in the node_modules directory. If they are not, it will download and install them.
  • 10. 3. NPM also installs the dependencies of the required dependencies, creating a dependency tree. This ensures that all required packages and their dependencies are installed. 4. If a specific version of a package is required, NPM will download and install that version. If a version range is specified, NPM will download and install the latest version that satisfies the range. NPM will create a package-lock.json file, which is used to lock the installed package versions and ensure consistency across different installations. The npm install command is used to install dependencies for your project without saving them to the package.json file. This means that the installed packages will not be tracked as dependencies in your project, and will not be automatically installed when you clone your project on a different machine. The npm install command is typically used for installing development dependencies or packages that are only needed temporarily.
  • 11. On the other hand, the npm install --save command is used to install dependencies and automatically add them to your package.json file. This means that the installed packages will be tracked as dependencies in your project, and will be automatically installed when you clone your project on a different machine. The --save flag tells NPM to update your package.json file with the installed package and its version information. The --save flag is typically used for installing production dependencies or packages that are required for the long-term stability of your project.
  • 12. Package.json is a metadata file in Node.js projects that contains important information about the project, such as its name, version, description, author, license, and dependencies. It's a standard file that is used by Node.js package managers, such as NPM, to install and manage project dependencies. Here are some of the key fields in a package.json file: name: The name of the project. This should be a unique name that identifies the project. version: The version of the project. This should follow the Semantic Versioning convention. description: A short description of the project. main: The entry point of the project. This is the file that will be executed when the project is run. Package.json
  • 13. scripts: A list of scripts that can be executed using NPM. This can include scripts for testing, building, and running the project. dependencies: A list of packages that the project depends on. These packages will be installed automatically when the project is installed using NPM. package-lock.json is a file generated by NPM that provides a detailed description of the dependencies installed in a Node.js project. It's used to lock the installed package versions, ensuring that the project has consistent dependencies across different installations or environments. When you run npm install, NPM reads the package.json file and installs the required dependencies into the node_modules directory. It also generates the package-lock.json file, which contains a detailed description of the installed packages and their dependencies.
  • 14. The package-lock.json file includes the following information: 1. The name, version, and description of each installed package. 2. The resolved version of each installed package and its dependencies. 3. The URLs of the package repositories and the checksums of the downloaded The package-lock.json file is used by NPM to ensure that the same versions of packages are installed across different environments or machines. This is important to avoid any conflicts or discrepancies that might arise due to different versions of the same package being installed in different environments. It's recommended to commit the package-lock.json file to version control, along with the package.json file, to ensure that the project dependencies are consistent and reproducible across different installations or environments. Package.json
  • 15. In Node.js, there are multiple ways to create a server and implement routing. Here are some of the commonly used methods: 1. Using the http module: The built-in http module provides basic server functionality. You can create an HTTP server using the http.createServer() method and handle requests manually. Routing can be implemented by inspecting the request URL and responding accordingly, as shown in the previous example. 2. Using the Express framework: Express is a popular, minimalistic web application framework for Node.js that simplifies server creation and routing. It provides an expressive API for defining routes, handling HTTP methods, and more. Server Creation
  • 16. You can use the app.get(), app.post(), app.put(), app.delete(), and other methods to handle different HTTP methods and define routes with ease. 3. Using other web frameworks: Apart from Express, there are several other web frameworks available for Node.js, such as Koa, Hapi, and Fastify. These frameworks provide their own APIs for server creation, routing, middleware, and more. They offer varying levels of abstraction and features, allowing you to choose based on your specific requirements. 4. Using middleware-based routers: Middleware-based routers, such as connect or express.Router(), allow you to organize your routes into separate modules or middleware functions. This helps modularize your code and keep your routes organized and reusable.
  • 17. 5. Using third-party routing libraries: There are numerous third-party routing libraries available for Node.js, such as Director, Page.js, and Director, that provide additional routing capabilities or different routing paradigms. These libraries often offer unique features or a different approach to routing, allowing you to choose the one that best suits your needs. These are just a few common methods for creating a server and implementing routing in Node.js. The choice depends on your specific requirements, project complexity, and personal preferences. Express is the most widely used and highly recommended option due to its simplicity and popularity in the Node.js ecosystem.
  • 18. One of the building blocks of node is the http module that we use for creating network in applications. For example we can create webserver that listens for http request on given port and with this we can easily create a backend service for client applications like web application that we build with angular. Http Server Description: This example creates a basic HTTP server that listens on port 3000. When a request is received, it responds with a 200 status code and sends the "Hello, World!" message as the response body.
  • 19. Here's a basic example of how to create a simple web server using Express in Node.js: Express – Server Creation In this example, we first import the Express module using the require() function. We then create an instance of the Express app using the express() function. We define a route using the app.get() method, which listens for GET requests to the root path (/) and responds with the message "Hello, World!" using the res.send() method.
  • 20. Finally, we start the server by calling the app.listen() method and passing in the port number to listen on (3000 in this case). When you run this code and navigate to http://localhost:3000 in your browser, you should see the message "Hello, World!" displayed on the page. This is a basic example of how to use Express to create a web server in Node.js.
  • 22. express.json() Middleware: This middleware is responsible for parsing the JSON data sent in the body of HTTP requests. When a client sends a request with a JSON payload (e.g., in a POST or PUT request), this middleware will parse that JSON data and make it available as a JavaScript object in the request.body property. This makes it easy to work with JSON data in Express routes.