Node.js nima va nega kerak

fetch darsida serverdan ma’lumot oldingiz. Lekin o’sha ma’lumotni kim beryapti? Shu paytgacha yozgan JavaScript kodingiz faqat brauzer ichida ishladi. Node.js aynan shu chegarani ochadi: JavaScript’ni brauzersiz, to’g’ridan-to’g’ri kompyuterda ishga tushiradi.

Muammo: brauzer JS serverni ko’tara olmaydi

Frontend va backend darsida ikki tomon borligini ko’rdik. Brauzerdagi JavaScript — frontend tomoni. U sahifani o’zgartiradi, tugma bosilishini kuzatadi, so’rov yuboradi.

Server tomonida esa boshqa ishlar kerak:

  • diskdan fayl o’qish va yozish;
  • tarmoqdan kelgan so’rovni qabul qilish (yuborish emas);
  • ma’lumotlar bazasiga ulanish;
  • kompyuter o’chmaguncha uzluksiz ishlab turish.

Brauzerdagi JavaScript bularning hech birini qila olmaydi. Sababi texnik cheklov emas — xavfsizlik. Agar ochgan har bir saytingiz diskdagi fayllarni o’qiy olsa, internetga kirish xavfli bo’lardi.

V8 — brauzerdan olib chiqilgan dvigatel

Brauzer JavaScript’ni o’zi tushunmaydi. Uning ichida dvigatel turadi: kodni o’qib, protsessor bajaradigan buyruqqa aylantiradigan dastur. Chrome’da bu dvigatel V8 deb ataladi.

Node.js’ning asosiy g’oyasi shundan chiqqan: V8 ni brauzerdan ajratib olib, ustiga operatsion tizim bilan ishlash imkoniyatlarini qo’shish.

Qism Nimani beradi
V8 JavaScript kodini tushunadi va bajaradi
Node.js qo’shimchasi Fayl, tarmoq, jarayon bilan ishlash
Natija Serverda ishlaydigan JavaScript

Shuning uchun const, map(), async/await — hammasi Node.js’da xuddi brauzerdagidek ishlaydi. Farq tilda emas, atrofdagi imkoniyatlarda.

Nima mumkin, nima mumkin emas

Ikki muhitni yonma-yon qo’yamiz:

Imkoniyat Brauzer JS Node.js
const, funksiya, massiv, obyekt Bor Bor
document, window (sahifa) Bor Yo’q
Tugma bosilishini kuzatish Bor Yo’q
Diskdan fayl o’qish Yo’q Bor
Tarmoq so’rovini qabul qilish Yo’q Bor
Tarmoqqa so’rov yuborish Bor Bor
Ma’lumotlar bazasiga ulanish Yo’q Bor

Jadvaldagi eng muhim qator — oxirgidan ikkinchisi. Brauzer so’rov yuboradi, Node.js so’rovni qabul qiladi. Express bo’limida siz aynan qabul qiladigan tomonni yozasiz.

Node.js nimalarda ishlatiladi

Node.js faqat sayt serveri uchun emas:

  • Web server va API — bizning bo’lim shu haqda;
  • Vositalar — kod yig’uvchi va tekshiruvchi dasturlar Node.js’da yozilgan;
  • Skriptlar — fayllarni qayta nomlash, ma’lumot ko’chirish;
  • Botlar — Telegram yoki Discord uchun.

npm buyrug’ini terminalda ishlatganingizda ham aslida Node.js ishlaydi.

Nega server uchun JavaScript

Node.js’dan oldin frontend’chi JavaScript, backend’chi PHP yoki Python yozardi. Bitta jamoada ikki xil til, ikki xil fikrlash.

Node.js bu devorni pasaytirdi:

  1. Bitta til — frontend va backend uchun bir xil sintaksis;
  2. Umumiy kod — tekshirish qoidalarini ikki tomonda ishlatish mumkin;
  3. Bir xil formatJSON JavaScript obyektiga juda yaqin.

Node.js qanday so’rovlarni ko’taradi

Node.js bitta oqimda ishlaydi — bir vaqtda bitta kod qatorini bajaradi. Shunga qaramay ko’p foydalanuvchiga xizmat qila oladi.

Sabab — kutish paytida bo’sh turmaslik. Bazadan javob kutilayotganda Node.js qotib qolmaydi, keyingi so’rovni oladi. Javob tayyor bo’lganda uzilgan joydan davom etadi.

Bu async/await darsidagi mantiqning o’zi. Brauzerda kutish paytida sahifa muzlab qolmaganidek, serverda ham bitta sekin so’rov qolganlarini to’xtatib qo’ymaydi.

Bu bo’limda nima qilasiz

Yo’l shunday quriladi:

  1. Node.js — JavaScript brauzersiz ishlaydi (shu dars);
  2. npm — tayyor kutubxonalarni loyihaga qo’shish;
  3. Express — server kodini qisqartiradigan framework;
  4. Birinchi serverlocalhost da o’z saytingiz.

Har darsda kod o’z kompyuteringizda ishlaydi. Shuning uchun bu bo’limda brauzerda kod ishga tushiradigan tugma bo’lmaydi — uning o’rniga har buyruqning kutilgan natijasi ko’rsatiladi, siz o’zingiznikini solishtirasiz.

Amaliy mashq

Kod yozilmaydi — hozircha tushunchani mustahkamlaymiz:

  1. Oxirgi yozgan JavaScript kodingizni oching va undagi document yoki window ishlatilgan qatorlarni belgilang — Node.js’ga ko’chirilsa, aynan shular ishlamaydi.
  2. Yuqoridagi taqqoslash jadvaliga qarab aniqlang: “foydalanuvchi yuklagan rasmni diskka saqlash” qaysi tomonning ishi?
  3. Sevimli saytingizni oching va taxmin qiling — qaysi qismi brauzerda, qaysi qismi serverda hisoblanadi?
  4. Server nima darsidagi to’rt qadamni eslang va Node.js ularning qaysi birini bajarishini ayting.
  5. Node.js’ni o’z kompyuteringizga o’rnating: nodejs.org saytidan LTS belgili versiyani tanlang.
  6. Terminalni ochib node --version va npm --version buyruqlarini bering — ikkalasi ham raqam qaytarishi kerak.

6-qadam keyingi darsning shartidir: ikki buyruq ham versiya ko’rsatmasa, undan nariga o’tilmaydi.

Kutilgan natija taxminan shunday bo’ladi (raqamlar farq qilishi mumkin):

v22.11.0
10.9.0

Qisqacha xulosa

  • Node.js — JavaScript’ni brauzerdan tashqarida bajaradigan muhit, alohida til emas.
  • Ichida Chrome’ning V8 dvigateli ishlaydi, ustiga fayl va tarmoq imkoniyatlari qo’shilgan.
  • Brauzerda document bor, Node.js’da yo’q; Node.js’da fayl o’qish bor, brauzerda yo’q.
  • Brauzer so’rov yuboradi, Node.js so’rovni qabul qiladi — server yozishning asosi shu.
  • Node.js bitta oqimda ishlaydi, lekin kutish paytida bo’sh turmaydi.
  • Til bitta bo’lgani uchun frontend bilimingiz backend’da ham ishlaydi.

Keyingi darsda Node.js o’rnatish va REPL — muhitni kompyuteringizga qo’yish va birinchi faylni ishga tushirish.

Bu dars foydali bo'ldimi?

marta ko'rildi