Web Programlama

Web Programlama

DERS PROGRAMI
Web Programlama 401 Ders Programı

Node.js'nin Bazı Temel Özellikleri

Lisans: Creative Commons 26.11.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

Node.js, daha önce de belirtildiği gibi, sunucu (server) tarafında kullanılan JavaScript'tir. Aşağıdaki şekil Node.js'in genel çalışma prensibini veriyor:

Node.js'in geliştirilmesi ve kullanılması şu temel soru çerçevesinde olmuştur: JavaScript'in istemci (client) tarafında mevcut olan ve kullanılan olaya dayalı icra modeli (event based execution) sunucu tarafında kullanılamaz mı?

Bu soruya verilen olumlu cevap sonucu Node.js geliştirilmiştir ve yaygın biçimde de kullanılmaktadır. Node.js, olaya dayalı asenkron fonksiyonlar (event based asynchronous functions) üzerine kurulmuştur. Bir olay (event) çevrimi (loop), G/Ç işlemleri yerine olayların oluşumunu izler; bir olay tetiklenince onunla ilişkili eylem gerçekleştirilir. Node.js, eşzamanlı milyonlarca bağlantıyı yönetecek ölçeklenebilir (scalable) özellikte bir yazılımdır.

Node.js, bu özelliği nedeni ile çok iplikli icra (multi-threaded execution) modelini kullanan PHP vb. sunucu yazılımlarına göre çok daha iyi performans sergilemektedir.

 

Global - yerel değişkenler

JavaScript'te, öntanımlı olarak tüm değişkenler globaldir. JavaScript'in en çok eleştirilen noktalarından biri de budur. Bu durum Node.js'te tamamen farklıdır. Öntanımlı olarak tüm değişkenler yereldir. Global olması istenen değişkenler global sözcüğü ile global olarak tanımlanır.

 

Modüllerin içe ve dışa aktarılması

JavaScript'in sakıncalı yönlerinden biri de dışarıdaki modüllerin program içine katılmasını sağlayacak bir yol olmamasıydı. Betikleri (script) sadece HTML kodları içinden çağırma olanağı vardı.

Node.js'te ise modülleri program içine aktarma ya da başka bir programın kullanımına sunma olanağı vardır. Tanımlanan bir modülü dışa aktarmak için;

exports.ad = nesne;

notasyonu kullanılır.

var mesaj={

bul: function(req,res,next){
…
},
ekle: function(req,res,next){
…
},

format:'baslik|tarih|yazar'
};
exports.mesaj = mesaj;

Yukarıdaki modülü dışa aktarmak içinse require fonksiyonu aşağıdaki biçimde kullanılır:

var  mesaj = require('./yol/mesaj.js');

Burada yol, mesaj.js'in bulunduğu dizine giden yolu tanımlamaktadır. Özellikle bir node.js uygulama çatısı olan express.js'te bazı durumlarda bir yapıcı (constructor) çağırmak daha uygundur.

module.exports = function(app){
app.set('port', process.env.PORT||3000);
app.set('views', '_dirname+'/views');
app.set('view engine', 'jade');
return app;
}

Yukarıdaki modülü dışa aktaracak dosya ise aşağıdaki gibidir:

…
var app = express();
var config = require('./config/index.js');
app = config(app);
…

 

Tampon alan (Buffer)

Node.js, dört ilkel tip (Boolean, Number, String, RegExp), dizi, fonksiyon ve nesneler için tampon belleği kullanarak yüksek hız sağlar.

 

_dirname

_dirname, global bir değişkenin çağrıldığı dosyaya giden mutlak yoldur.

 

process.cwd

process.cwd ise bu betiği çalıştıran işleme giden mutlak yoldur.