Node.js Nedir, Nasıl İşler?

Node.js js (javascript) tabanlı bir platformdur.

Kullandığı motor: v8 java-engine'dir. Ki bu motor, chrome için  Google tarafından geliştirilmiştir. Chrome, chromium, opera gibi tarayıcılarda kullanılmaktadır.

-> 2 temel yapıda birleşir.

  • Script işleme
  • A REPL (Read Eval Print Loop)


Script İşleme


->  Event Loop

  • Normal çalışma mantığında; Kodlar todo list'e atılır. Ve yapılacak işlemler bitince motor durur.
  • Node.js; Kodlar todo list'e atılır ve her kod yeni bir işlem daha oluşturur, böylece sonsuz döngüye girer ve motor durmaz. (serverlar böyle tasarlanır.)


-> Asenkron Yapısı

Normal işlemler sıra ile yapılır.;

  • Siteden database'ye mesaj gönderilir.
  • Database mesajı alır ve hazırlar, cevap verme sürecine geçer.
  • Bu süreçte server beklemede kalır, devam etmez !  (Blocking)


Node.js;

  • Database'den cevap gelene kadar, server diğer işlemlerine devam eder.
  • Cevap geldiğinde database verisini işlemeye başlar (Non-Blocking / asynchronize )


-> Node Module System


  • Bir dosyayı derleyerek bütün dosyaların çalışması sağlanır.
    • var lib = require('.lib/'); 
      • Dosyanın modülü, değişkene atanır.
      • ".lib/" değişkendir.
    • module.exports = veri;
      • Modulümüzün "require" ile çağrıldığında, göndereceği veriyi  ("veri") atıyoruz.
  • Bu şekilde tüm istenen dosyalar birbirine bağlı oluyor ve tek bir dosyadan derleniyor.



  • Örnek;
    • Dosya1;
      • // dosya2'i (module.export'unu) bir fonksiyona atadık.
      • var aktarılanFonksiyon = require('dosya2');

      • // Aktarılan dosyanın içindeki test metodunu kullanıyoruz. 
      • aktarılanFonksiyon.test();
    • Dosya 2;
      • // Kütüphane objesi oluşturduk.
      • var kütüphane = {};

      • // Test fonksiyonunu oluşturduk.
      • kütüphane.test = function() {
      •     console.log('selam')
      • }

      • Dışarı aktarılacak olan objemizi ayarladık.
      • module.export = kütüphane;



  • Artık "node dosya1.js" diyerek iki dosyayı da derleyebiliyoruz.


-> Sonuç olarak;

  • Okumak istediğimiz dosyayı okuyur (Yukarıdaki örnekte "dosya1.js")
  • Bu dosyaya bağlı olan tüm diğer dosyaları da okur.
  • Bu dosyalardaki senkronize görevleri işlemeye başlar.
  • "todo list" teki kodları  ,yapılacak herhangi bir iş kalmayana kadar, "event loop" ile tekrarlı olarak işlemeye başlar.



Yorumlar

Popüler Yayınlar