SlideShare a Scribd company logo
1 of 25
Download to read offline
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

Node.js.pdf
Node.js.pdfNode.js.pdf
Node.js.pdf
gulfam ali
 
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
 

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

More from Expeed Software (7)

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

CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
Wonjun Hwang
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 

Recently uploaded (20)

Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Generative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdfGenerative AI Use Cases and Applications.pdf
Generative AI Use Cases and Applications.pdf
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptx
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Navigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi DaparthiNavigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi Daparthi
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 

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.