๐ŸŸข
Veb-sayt

Node.js va Express bilan REST API qurish: amaliy qo'llanma

02.02.2026
โ† Barcha maqolalar

Zamonaviy veb-ilovalar deyarli har doim ikki qismdan iborat: foydalanuvchi ko'radigan frontend va ma'lumotlarni boshqaradigan backend. Ushbu ikki qismni bir-biriga bog'lovchi ko'prik aynan REST API hisoblanadi. Node.js va uning ustida qurilgan Express frameworki bugungi kunda backend dasturlash uchun eng ommabop tanlovlardan biriga aylangan, chunki ular soddaligi, tezligi va ulkan ekotizimi bilan ajralib turadi. Ushbu maqolada biz noldan boshlab to'liq ishlaydigan REST API qurishni, route va middleware tushunchalarini, CRUD amallarini, xatolarni boshqarish, validatsiya va autentifikatsiyani amaliy kod misollari bilan o'rganib chiqamiz.

Express nima va nega u kerak

Express โ€” bu Node.js uchun minimal va moslashuvchan web framework bo'lib, u HTTP so'rovlarini qabul qilish va javob qaytarish jarayonini ancha soddalashtiradi. Node.js ning o'zida ham veb-server yaratish mumkin, biroq bunda har bir so'rovni qo'lda tahlil qilish, URL'larni solishtirish va javob sarlavhalarini sozlash kabi murakkab ishlarni o'zingiz bajarishingizga to'g'ri keladi. Express esa bu murakkablikni yashirib, sizga route'lar, middleware va qulay yordamchi metodlar orqali ishlash imkonini beradi. Aynan shu sababli minglab kompaniyalar va startaplar o'z API'larini Express asosida quradilar, chunki u kam kod yozib ko'p natijaga erishish imkonini beradi.

Loyihani sozlash va birinchi server

Ishni boshlash uchun avvalo kompyuteringizda Node.js o'rnatilgan bo'lishi kerak. Keyin yangi loyiha papkasini yaratib, undagi paketlarni boshqarish uchun npm yordamida loyihani ishga tushiramiz va Express kutubxonasini o'rnatamiz. Quyidagi buyruqlar loyihaning asosiy tuzilmasini tayyorlaydi va birinchi ishga tushiriladigan serverni yozishga zamin yaratadi.

mkdir my-api && cd my-api
npm init -y
npm install express

Endi loyiha ildizida index.js faylini yaratamiz va eng oddiy serverni yozamiz. Bu server faqat bitta manzilga so'rov kelganda javob qaytaradi, biroq u bizning butun API'mizning poydevori bo'lib xizmat qiladi. Diqqat qiling, server ma'lum bir portni tinglaydi va u ishga tushganda konsolga xabar chiqaradi.

const express = require('express');
const app = express();

app.use(express.json());

app.get('/', (req, res) => {
  res.json({ message: 'API ishlayapti' });
});

const PORT = 3000;
app.listen(PORT, () => {
  console.log(`Server ${PORT}-portda ishga tushdi`);
});

Route'lar va CRUD endpointlari

REST API ning asosiy g'oyasi resurslar bilan ishlashdir, masalan foydalanuvchilar yoki maqolalar. Har bir resurs ustida to'rtta asosiy amal bajariladi: yaratish, o'qish, yangilash va o'chirish, ya'ni CRUD. Bu amallar mos ravishda POST, GET, PUT va DELETE HTTP metodlari orqali ifodalanadi. Quyidagi misolda biz oddiy massiv ko'rinishidagi vaqtinchalik ma'lumotlar ombori bilan ishlovchi to'liq CRUD endpointlarini ko'rib chiqamiz.

let users = [{ id: 1, name: 'Ali' }];

app.get('/users', (req, res) => {
  res.json(users);
});

app.get('/users/:id', (req, res) => {
  const user = users.find(u => u.id === Number(req.params.id));
  if (!user) return res.status(404).json({ error: 'Topilmadi' });
  res.json(user);
});

app.post('/users', (req, res) => {
  const user = { id: Date.now(), name: req.body.name };
  users.push(user);
  res.status(201).json(user);
});

app.delete('/users/:id', (req, res) => {
  users = users.filter(u => u.id !== Number(req.params.id));
  res.status(204).end();
});

Ushbu kodda req.params orqali URL'dagi dinamik qismlarni, req.body orqali esa so'rov tanasidagi JSON ma'lumotlarni o'qiymiz. Javob qaytarishda HTTP holat kodlarini to'g'ri tanlash juda muhim: yangi resurs yaratilganda 201, muvaffaqiyatli o'chirishda 204, topilmaganda esa 404 kodi qaytariladi. Bu kodlar API mijozlariga nima sodir bo'lganini aniq tushuntiradi.

Middleware tushunchasi

Middleware โ€” bu so'rov serverga kelib, javob qaytguncha bo'lgan oraliqda ishlaydigan funksiyalardir. Ular orqali siz so'rovlarni jurnalga yozish, autentifikatsiyani tekshirish, ma'lumotlarni qayta ishlash yoki xatolarni ushlab qolish kabi ishlarni markazlashtirilgan tarzda bajarishingiz mumkin. Yuqorida ishlatgan express.json() ham aslida middleware bo'lib, u kelayotgan JSON tanasini avtomatik ravishda obyektga aylantiradi. O'z middleware'ingizni yozish ham juda oson.

function logger(req, res, next) {
  console.log(`${req.method} ${req.url}`);
  next();
}

app.use(logger);

E'tibor bering, har bir middleware oxirida next() funksiyasini chaqirish kerak, aks holda so'rov keyingi bosqichga o'tmay osilib qoladi. Bu mexanizm Express'ni juda kuchli qiladi, chunki siz murakkab mantiqni kichik va qayta ishlatiladigan bo'laklarga ajratishingiz mumkin.

Xatolarni boshqarish va validatsiya

Ishonchli API yaratishda eng ko'p e'tibordan chetda qoladigan, biroq eng muhim jihatlardan biri bu xatolarni to'g'ri boshqarishdir. Foydalanuvchi noto'g'ri ma'lumot yuborishi, mavjud bo'lmagan resursni so'rashi yoki serverda kutilmagan muammo yuzaga kelishi mumkin. Bunday holatlarda API tushunarli xato xabari va to'g'ri holat kodini qaytarishi shart. Express'da maxsus xato boshqaruvchi middleware to'rtta argument qabul qiladi va u barcha route'lardan keyin joylashtiriladi.

app.post('/users', (req, res, next) => {
  if (!req.body.name) {
    return res.status(400).json({ error: 'Ism majburiy' });
  }
  next();
});

app.use((err, req, res, next) => {
  console.error(err);
  res.status(500).json({ error: 'Server xatosi' });
});

Validatsiya, ya'ni kiruvchi ma'lumotlarni tekshirish, xavfsizlik nuqtai nazaridan ham nihoyatda zarur. Amaliyotda ko'pchilik dasturchilar bu vazifani qo'lda yozish o'rniga maxsus kutubxonalardan, masalan Joi yoki express-validator'dan foydalanadilar, bu esa kodni toza va ishonchli saqlashga yordam beradi.

Ma'lumotlar bazasi va autentifikatsiya

Haqiqiy loyihalarda ma'lumotlar massivda emas, balki ma'lumotlar bazasida saqlanadi. Node.js MongoDB bilan Mongoose orqali yoki PostgreSQL bilan Prisma kabi vositalar orqali oson bog'lanadi. Bog'lanish odatda ilova ishga tushishi bilan bir marta o'rnatiladi va keyin route'lar ichida shu bog'lanish orqali so'rovlar bajariladi. Autentifikatsiya esa ko'pincha JWT, ya'ni JSON Web Token texnologiyasi orqali amalga oshiriladi: foydalanuvchi tizimga kirganda unga maxsus token beriladi va keyingi so'rovlarda shu token orqali uning kimligi tasdiqlanadi.

const jwt = require('jsonwebtoken');

function auth(req, res, next) {
  const token = req.headers.authorization?.split(' ')[1];
  if (!token) return res.status(401).json({ error: 'Token yo\'q' });
  try {
    req.user = jwt.verify(token, process.env.SECRET);
    next();
  } catch {
    res.status(403).json({ error: 'Token noto\'g\'ri' });
  }
}

Eng yaxshi amaliyotlar

Professional darajadagi API yaratish uchun bir nechta muhim qoidalarga amal qilish kerak. Birinchidan, kodingizni mantiqiy qatlamlarga ajrating: route'lar, biznes mantig'i va ma'lumotlar bilan ishlash alohida fayllarda turishi loyihani o'sib borgani sayin boshqarishni osonlashtiradi. Ikkinchidan, maxfiy ma'lumotlarni, masalan ma'lumotlar bazasi parollari va token kalitlarini hech qachon kodga to'g'ridan-to'g'ri yozmang, balki muhit o'zgaruvchilarida saqlang. Uchinchidan, API versiyalashni joriy eting va doimiy ravishda so'rovlar tezligini cheklash kabi xavfsizlik choralarini qo'llang. Ushbu amaliyotlarga rioya qilsangiz, sizning API'ingiz nafaqat ishlaydigan, balki haqiqiy yuklamaga dosh beradigan ishonchli tizimga aylanadi.

O'xshash maqolalar

๐ŸŒพ Qishloq xo'jaligi va agrobiznes sayti: mahsulotlar katalogi va B2B sotuv โค๏ธ Xayriya fondi sayti: shaffof xayriya yig'ish va donator ishonchi ๐ŸŽ‰ Toyxona va banket zali sayti: tadbir tashkil qilish va onlayn bron qilish ๐Ÿš™ Avtoulov ijarasi sayti: avtomobil katalog, narx kalkulyatori va onlayn bron
๐ŸŒ Til
๐Ÿ‡บ๐Ÿ‡ฟ O'zbek โœ“ ๐Ÿ‡บ๐Ÿ‡ฟ ะŽะทะฑะตะบ ๐Ÿ‡ท๐Ÿ‡บ ะ ัƒััะบะธะน ๐Ÿ‡ฌ๐Ÿ‡ง English