Node.js β 0 dan Backend dasturchigacha (o'zbek tilida)¶
Bu kitob JavaScript asoslarini biladigan o'quvchini Node.js bo'yicha noldan ishonchli backend dasturchi darajasiga olib chiqadi. Brauzerdan tashqarida JavaScript ishga tushirishdan boshlab β modullar, npm, asinxronlik, event loop, fayl tizimi, streamlar, Express, to'rt xil ma'lumotlar bazasi (SQLite, MySQL, Prisma, MongoDB), autentifikatsiya, real-time, testlash, production va TypeScript orqali β to'liq production-darajali REST API kapstongacha. Har bir mavzu sodda tushuntirish, Node 24 da haqiqiy ishga tushirib tekshirilgan kod va amaliy "REAL KEYS" loyihalari bilan ochib beriladi.
π¨ Har bob SVG diagrammalar bilan boyitilgan β Node arxitekturasi, event loop fazalari, microtask/macrotask navbati, stream pipe, Express oqimi, connection pool, JWT auth kabi tushunchalar ko'z bilan ko'rib o'rganiladi.
Qoida: Node.js o'qib emas β YOZIB o'rganiladi. Har bir misolni o'zingiz tering va node bilan ishga tushiring. Xato chiqsa β aynan shu yerda haqiqiy o'rganish boshlanadi.
βΉοΈ Bu kitob siz JavaScript asoslarini (o'zgaruvchi, funksiya, obyekt, massiv, async/await) bilasiz deb hisoblaydi. JavaScript yangi bo'lsa, avval JavaScript β 0 dan Expertgacha kitobini o'qing.
Node.js β brauzerdan tashqarida JavaScript ishga tushiruvchi muhit (V8, libuv); asinxron "bloklamaydigan" tabiati, brauzer JS'dan farqi; o'rnatish, REPL va birinchi CLI skript.
Kodni modullarga bo'lish; CommonJS (require/module.exports) va ESM (import/export); fayl scope, modul kesh, __dirname vs import.meta, top-level await, modul resolution.
Node bitta thread'da minglab so'rovni qanday eplaydi; bloklovchi vs non-bloklovchi; call stack, event loop fazalari, microtask vs macrotask navbati, process.nextTick, libuv thread pool.
Event-driven pattern; node:events va EventEmitter (on/emit/once/off), meros, error hodisasining maxsusligi, maxListeners va xotira oqishi; real buyurtma tizimi misoli.
node:fs ning uch yuzi (sync/callback/promise); o'qish/yozish/o'chirish/ko'chirish, papkalar, stat; existsSync tuzog'i; node:path va import.meta.dirname.
Katta ma'lumot bilan samarali ishlash; Buffer (binar bayt); Stream (Readable/Writable/Duplex/Transform), pipe/pipeline(), backpressure, zlib gzip, qatorma-qator filtr.
node:http bilan paketsiz veb-server; createServer, req/res, qo'lda routing, query string, statik fayl; native REST API β keyin Express bilan solishtiriladi.
Eng mashhur framework Express.js; routing, route parametrlari/query, express.json() va req.body, res.json/status, express.Router(), statik fayllar; native bilan solishtirish.
To'liq RESTful API: resurs/verb semantikasi, CRUD, to'g'ri status kodlar (200/201/204/400/404/409/422), izchil JSON javob, pagination/filtering/sorting, versiyalash va qatlamlash (routesβcontrollersβservices).
Zod bilan kiruvchi ma'lumot validatsiyasi (schema, safeParse); validatsiya middleware; markaziy xato boshqaruvi β custom Error sinflari, error middleware, RFC 7807 Problem Details, dev vs prod.
Node'da DB asoslari; serversiz embedded SQLite; prepared statements (SQL injection himoyasi), to'liq CRUD, transaction; vazifa API'ni haqiqiy bazaga ko'chirish.
Real DB server; mysql2/promise, connection pool, prepared execute, CRUD, beginTransaction/commit/rollback, .env config; haqiqiy MySQL serverga ulanish.
Test turlari va piramidasi; Vitest (describe/it/expect, async, mocking); supertest bilan API integratsiya testi; sqlite :memory: test bazasi, coverage, TDD.
Butun kitobni bog'laydigan production-darajali REST API: qatlamli struktura, DB + JWT/RBAC + Zod + markaziy xato + logging + supertest test + Docker. "0 dan expertgacha" yo'lining yakuni.