Bosh sahifa Wiki Express

Express

Express — Node.js muhiti uchun yaratilgan minimal va kengaytiriladigan veb-framework. U HTTP server ustida marshrutlash, middleware zanjiri, so‘rov parametrlarini o‘qish va javob yuborish kabi asosiy imkoniyatlarni beradi. Ma’lumotlar bazasi, autentifikatsiya yoki fayl tuzilishi bo‘yicha qat’iy model belgilamagani sababli Express ilovasining arxitekturasi ko‘p jihatdan loyiha tomonidan tanlanadi.

Server va route

Express ilovasi Node.js HTTP imkoniyatlariga tayanadi. express() ilova obyektini yaratadi, route metodlari esa HTTP usuli va URL yo‘lini handler bilan bog‘laydi.

import express from 'express';

const app = express();
app.get('/articles/:id', (req, res) => {
  res.json({ id: req.params.id });
});
app.listen(3000);

req so‘rovga tegishli parametr, sarlavha va tana ma’lumotini, res esa status, sarlavha va javob tanasini boshqaradi. Route parametri req.params, query string esa req.query orqali olinadi.

Middleware modeli

Expressning markaziy mexanizmi middleware funksiyalaridir. Odatda ular req, res va next argumentlarini qabul qiladi. next() keyingi komponentni chaqiradi; javob yuborilsa, zanjir davom ettirilmaydi. JSON tanani ajratish uchun express.json(), statik fayllar uchun express.static() middlewarelari mavjud.

Middlewarelar ro‘yxatdan o‘tgan tartibda ishlaydi. Shuning uchun body parser undan foydalanadigan routedan oldin, markaziy xato qayta ishlovchi esa odatda routelardan keyin joylashadi. Bir pathga biriktirilgan router katta ilovani modullarga ajratishga yordam beradi.

Xatolarni qayta ishlash

Error middleware to‘rtta argument bilan aniqlanadi: err, req, res, next. Sinxron handler tashlagan xato Express tomonidan error zanjiriga uzatiladi. Asinxron koddagi xatoni qayta ishlash framework versiyasi va Promise oqimiga bog‘liq; xato yo‘qolib ketmasligi uchun aniq error siyosati talab qilinadi.

Javob yuborilgandan keyin yana javob berishga urinish headers already sent turidagi muammoga olib keladi. Handler har bir yo‘lda bir marta yakunlanishi yoki nazoratni keyingi middlewarega uzatishi kerak.

Ekotizim va erkin tuzilma

Express ORM, schema validatsiyasi, session ombori va autentifikatsiya protokolini majburan tanlamaydi. Bu kichik API uchun soddalik beradi, katta loyihada esa kutubxona tanlash va umumiy qoidalarni jamoa zimmasiga yuklaydi. Controller, service va repository qatlamlari framework talabi emas, balki loyiha arxitekturasidir.

Xavfsizlik va ishlab chiqarish muhiti

Framework foydalanuvchi kiritmasini avtomatik ishonchli qilmaydi. Body hajmi cheklovi, schema validatsiyasi, autentifikatsiya, rate limiting va to‘g‘ri CORS siyosati alohida sozlanadi. Ilova ko‘pincha reverse proxy ortida ishlaydi; bunday holatda haqiqiy IP va HTTPS holatini aniqlash uchun trust proxy sozlamasi muhitga mos bo‘lishi kerak. Jarayonning ishlashi, loglar va graceful shutdown ham deploy qatlamida boshqariladi.

Router va parametrlar

express.Router() mustaqil middleware va route guruhini yaratadi. Asosiy ilova routerni /api kabi prefiks ostiga ulashi mumkin. Parametr validatsiyasi faqat route pattern mos kelgani bilan tugamaydi: :id satr sifatida keladi, uning raqam, UUID yoki boshqa format ekanini kod tekshiradi. Query va body ham ishonchsiz kirish hisoblanadi. Router darajasida umumiy autentifikatsiya qo‘yish takrorni kamaytiradi, lekin public endpoint tasodifan himoyalangan guruhga yoki aksincha ochiq guruhga tushmasligi kerak. Route ro‘yxatdan o‘tish tartibi ham muhim: keng wildcard aniq yo‘lni oldin ushlab qolishi mumkin.

Bog‘liq tushunchalar

Node.js, JavaScript, middleware, routing, REST API, HTTP server, reverse proxy