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