Frontend foydalanuvchi koβ€˜radigan qism boβ€˜lsa, backend:

βœ…ma’lumotlarni saqlaydi βœ… authentication qiladi βœ… API yaratadi βœ… biznes logikani boshqaradi βœ… xavfsizlikni ta’minlaydi βœ… boshqa servislar bilan bogβ€˜lanadi

JavaScript ecosystem ichida backend uchun eng mashhur texnologiyalardan biri:

⚑ Node.js

Node.js nima?

Node.js β€” bu JavaScript kodini browserdan tashqarida serverda ishlatish imkonini beradigan runtime.

Oldin:

JavaScript β†’ faqat frontend

Hozir:

JavaScript β†’ frontend + backend + mobile + desktop

Node.js yordamida:

React frontend

↓

Node.js API

↓

Database

↓

Mobile app

arxitektura qilish mumkin.

━━━━━━━━━━━━━━━━━━

Node.js backend uchun asosiy frameworklar

Eng mashhurlari:

  1. Express.js

  2. NestJS

Ikkalasi ham Node.js ustida ishlaydi.

Lekin yondashuvi boshqacha.

━━━━━━━━━━━━━━━━━━

Express.js nima?

Express.js β€” Node.js uchun minimal va tezkor backend framework.

Oddiy API yaratish:

bash
npm install express

server.js

javascript
const express = require("express")


const app = express()


app.use(express.json())


app.get("/",(req,res)=>{

res.json({
message:"Hello Backend"
})

})


app.listen(3000,()=>{

console.log(
"Server running"
)

})

Natija:

GET localhost:3000

Response:

json
{
"message":"Hello Backend"
}

Juda oddiy.

━━━━━━━━━━━━━━━━━━

Express.js afzalliklari

πŸ”₯ Tez

Express juda yengil framework.

πŸ”₯ Oson oβ€˜rganiladi

Yangi boshlovchilar uchun yaxshi.

πŸ”₯ Katta ecosystem

Misol:

Authentication:

bash
passport.js

Database:

bash
mongoose
prisma
sequelize

Validation:

bash
zod
joi

πŸ”₯ Toβ€˜liq erkinlik

Arxitekturani oβ€˜zingiz tanlaysiz.

━━━━━━━━━━━━━━━━━━

Express.js kamchiliklari

Loyiha kattalashganda:

src routes controllers services utils middlewares models

hammasini oβ€˜zingiz boshqarasiz.

Katta jamoada:

❌ struktura buzilishi mumkin

❌ kod takrorlanishi mumkin

❌ standart yoβ€˜q

Shuning uchun katta loyihalarda koβ€˜pincha NestJS tanlanadi.

━━━━━━━━━━━━━━━━━━

Express.js Controller misol

routes/user.js

javascript
router.get(
"/users",
userController
)

controller:

javascript
exports.getUsers =
async(req,res)=>{


const users =
await User.find()


res.json(users)


}

Oddiy.

━━━━━━━━━━━━━━━━━━

NestJS nima?

NestJS β€” Node.js uchun enterprise darajadagi framework.

U TypeScript asosida ishlaydi.

NestJS ichida:

βœ… Modules

βœ… Controllers

βœ… Services

βœ… Dependency Injection

βœ… Guards

βœ… Pipes

βœ… Middleware

bor.

Struktura:

src app.module.ts users users.controller.ts users.service.ts users.module.ts

━━━━━━━━━━━━━━━━━━

NestJS Controller

users.controller.ts

typescript
@Controller("users")

export class UsersController{


@Get()

findAll(){

return "Users"

}


}

API:

GET

/users

━━━━━━━━━━━━━━━━━━

NestJS Service

Biznes logika:

typescript
@Injectable()

export class UsersService{


findAll(){


return [
{
name:"Ulugbek"
}
]


}


}

Controller:

typescript
constructor(
private service:UsersService
){}


@Get()

get(){

return this.service.findAll()

}

Bu Dependency Injection.

━━━━━━━━━━━━━━━━━━

NestJS afzalliklari

πŸ”₯ Katta loyihalar uchun ideal

Masalan:

Social network

Bank system

Marketplace

Enterprise app

πŸ”₯ Tizimli arxitektura

Har bir narsa joyida:

Controller

↓

Service

↓

Database

πŸ”₯ TypeScript bilan kuchli

Xatolarni oldindan topadi.

πŸ”₯ Built-in imkoniyatlar

Authentication:

Guards

Validation:

Pipes

Security:

Middleware

━━━━━━━━━━━━━━━━━━

NestJS kamchiliklari

❌ Boshlash qiyinroq

Expressga qaraganda koβ€˜proq tushuncha kerak.

❌ Koβ€˜proq kod yoziladi

Oddiy API uchun ba’zida ortiqcha.

❌ Kichik loyiha uchun ogβ€˜ir

Masalan:

3 ta endpoint boβ€˜lsa Express yetadi.

━━━━━━━━━━━━━━━━━━

Backend uchun kerakli kutubxonalar

1. Prisma ORM

Database bilan ishlash.

Oβ€˜rnatish:

bash
npm install prisma

Model:

prisma
model User{

id Int @id @default(autoincrement())

name String

email String

}

Query:

javascript
const users =
await prisma.user.findMany()

Afzalligi:

βœ… Type safe

βœ… PostgreSQL bilan yaxshi

βœ… Migration

Kamchiligi:

❌ Murakkab querylarda oβ€˜rganish kerak

━━━━━━━━━━━━━━━━━━

MongoDB uchun Mongoose

bash
npm install mongoose

Schema:

javascript
const UserSchema =
new mongoose.Schema({

name:String,

email:String


})

━━━━━━━━━━━━━━━━━━

Authentication

JWT

Kutubxona:

bash
npm install jsonwebtoken

Token:

javascript
jwt.sign(

{
id:user.id
},

SECRET

)

Foydalanuvchi login qilganda token oladi.

━━━━━━━━━━━━━━━━━━

Password hashing

bcrypt

bash
npm install bcrypt

Hash:

javascript
const hash =
await bcrypt.hash(
password,
10
)

Tekshirish:

javascript
bcrypt.compare(
password,
hash
)

━━━━━━━━━━━━━━━━━━

Validation

Zod

bash
npm install zod

Schema:

typescript
const schema =
z.object({

email:z.string().email(),

age:z.number()

})

━━━━━━━━━━━━━━━━━━

File upload

Multer:

bash
npm install multer

Image upload:

User

↓

API

↓

Storage

Masalan:

AWS S3

ImageKit

Cloudinary

━━━━━━━━━━━━━━━━━━

API Documentation

Swagger:

bash
npm install swagger-ui-express

Natija:

/api/docs

Backend documentation.

━━━━━━━━━━━━━━━━━━

Realtime

Chat uchun:

Socket.io

bash
npm install socket.io

Server:

javascript
io.on(
"connection",
(socket)=>{


console.log(
"User connected"
)


})

Ishlatiladi:

Chat

Notification

Live updates

━━━━━━━━━━━━━━━━━━

Express vs NestJS

Express:

βœ… tez

βœ… oddiy

βœ… flexible

❌ katta loyiha qiyin

NestJS:

βœ… professional

βœ… scalable

βœ… clean architecture

❌ oβ€˜rganish qiyinroq

━━━━━━━━━━━━━━━━━━

Qaysi birini tanlash?

Portfolio:

Express

Startup:

Express yoki NestJS

Enterprise:

NestJS

Real-time app:

Express + Socket.io yoki NestJS

━━━━━━━━━━━━━━━━━━

Professional Node.js backend stack:

πŸ”₯ Node.js

πŸ”₯ TypeScript

πŸ”₯ NestJS

πŸ”₯ Prisma

πŸ”₯ PostgreSQL

πŸ”₯ Redis

πŸ”₯ JWT

πŸ”₯ Docker

πŸ”₯ Swagger

πŸ”₯ WebSocket

Backend faqat API yozish emas.

Bu: Architecture, Security, Database, Performance, Scalability demakdir.

Har bir kuchli frontend developer bir kun kelib backend tushunishi kerak.

Chunki yaxshi dasturchi faqat interface emas, butun tizimni koβ€˜ra oladi. πŸš€

#NodeJS #NestJS #ExpressJS #Backend #JavaScript #TypeScript #WebDevelopment