

What is Node.JS?





Javascript Engine
Javascript Engine






Javascript Engine

Most Popular Engine
Javascript Engine

Ryan Dahl



NodeJS
You can run JS outside of the browser
Javascript can talk to native machine because of c++
You can create webservers in Javascript Language
What is NodeJS?
NodeJS is a Runtime Env. for Javascript

INSTALLATION
&
SETUP

Architecture




Request


Request

Request

Event Queue

Request

Event Queue

Request

Event Queue

Request

Event Queue


Event Loop

Request

Event Queue


Event Loop

Blocking Operations
Non- Blocking Operations
Request

Event Queue


Event Loop

Blocking Operations
Non- Blocking Operations
Process
Response
Request

Event Queue


Event Loop

Blocking Operations

Blocking Operations
Thread Pool
I need a thread / worker
Assign a worker and
make him work
Return the result

Blocking Operations
Request
Event Queue


Event Loop


Blocking Operations
Request
Event Queue


Event Loop

Response
URL
Uniform Resource Locator
URL
Uniform Resource Locator
https://www.piyushgarg.dev/
URL
Uniform Resource Locator
https://www.piyushgarg.dev/
Protocol:
Hypertext
Transfer
Protocol
Secure
URL
Uniform Resource Locator
https://www.piyushgarg.dev/
Protocol:
Hypertext
Transfer
Protocol
Secure
Domain - User Friendly Name of IP Address of My Server
URL
Uniform Resource Locator
https://www.piyushgarg.dev/
Protocol:
Hypertext
Transfer
Protocol
Secure
Domain - User Friendly Name of IP Address of My Server
Path: / HomePage or Root Path
URL
piyushgarg.dev/about
PATH
URL
piyushgarg.dev/contact-us
PATH
URL
piyushgarg.dev/project/1
Nested PATH
URL
piyushgarg.dev/about?userId=1&a=2
Query Parameters
Working


Request
Working


Request
Response
HTTP METODS
GET
POST
PUT
PATCH
DELETE
HTTP GET
When you want to get some data from the server
HTTP GET
When you want to get some data from the server

HTTP GET
When you want to get some data from the server

https://youtube.com/search

GET Request
HTTP POST
When you want to send and mutate some data in server
HTTP POST
When you want to send and mutate some data in server


POST Request
{ FormData }
HTTP POST
When you want to send and mutate some data in server


POST Request
{ FormData }
HTTP Headers
&
Status Codes
Headers

Headers


Headers



Headers



Headers



Headers



Headers



From: Person A
To: Person B
Weight: 200Gms
Headers



From: Person A
To: Person B
Weight: 200Gms
Data


Extra Info about Packet
Headers



From: Person A
To: Person B
Weight: 200Gms
Data


Extra Info about Packet
Headers



From: Person A
To: Person B
Weight: 200Gms
Data


Headers
Client
Request
Headers



From: 192.168.1.1
To: 10.1.1.2
Content Type: JSON
Data


Headers
Client
Request
Headers
HTTP Headers are an important part of the API request and response as they represent the meta-data associated with the API request and response.
Headers carry information for The request and Response Body.
Headers

Status Codes
404 - Not Found
MongoDB

MongoDB
No-SQL Document Based Database
Strong Support for Aggregation Pipes
Works on BSON format
Best for Node Applications
MongoDB
Collection - "users"
MongoDB
Collection - "users"
Collection - "users"
document-1
MongoDB
Collection - "users"
Collection - "users"
document-1
document-2
MongoDB
Collection - "users"
Collection - "users"
document-1
document-2
document-1
MongoDB
Installation and Setup
MongoDB
> show dbs
> use <db_name>
> show collections
> db.coll.find()
> db.coll.insert()
Model View Controller
Model View Controller
Model
View
Controller
Model View Controller
Model
View
Controller
Authentication
Authentication
Patterns
Authentication
Patterns
Authentication
Patterns
Statefull
Stateless
Which maintains state or data or server side
Which has no state
Statefull


Statefull



Statefull



Statefull



Statefull




Number 24: DLXXXX123
Parking Ticket
Number: 24
Statefull




Number 24: DLXXXX123
Parking Ticket
Number: 24
Statefull




Number 24: DLXXXX123
Parking Ticket
Number: 24
Statefull




Number 24: DLXXXX123
Parking Ticket
Number: 24
Statefull




Number 24: DLXXXX123
Parking Ticket
Number: 24
Statefull




Parking Ticket
Number: 24
Statefull

Number 24: DLXXXX123
Number 23: DLXXXX134
Number 26: DLXXXX167
Number 27: DLXXXX123
State
Statefull

Statefull


Statefull


username / password
Statefull


username / password
session uid
Statefull


username / password
session uid
uid: 367
Statefull


uid: 367
Statefull


uid: 367
GET /users | uid: 367
Statefull


uid: 367
GET /users | uid: 367
Server checking who is user 367
Statefull


uid: 367
GET /users | uid: 367
response: all users
How to transfer uid?


cookies
response
headers
Express Flow

Auth Middleware
Checks for cookie value or uid, if valid calls next() else rejects the request
endpoint route
Statefull




Number 24: DLXXXX123
Parking Ticket
Number: 24
StateLess



Parking Ticket
Number: 24
StateLess



Parking Ticket
CarNumber 24: DLXXXX123
StateLess



Parking Ticket
CarNumber 24: DLXXXX123
StateLess



Parking Ticket
CarNumber 24: DLXXXX123

StateLess



Parking Ticket
CarNumber 24: DLXXXX123

StateLess



Parking Ticket
CarNumber 24: DLXXXX123

NodeJS
By piyushgargdev
NodeJS
- 533