Turkcell | Geleceği Yazanlar

401: Node.jsBaşlangıç seviyesi derslerde Web Programlama uygulama geliştirme ortamını detaylı olarak inceliyoruz.

Tüm Eğitimleri Aldın mı? Kendini sınamanın tam zamanı

Haydi Sınava Gir

Node.js'nin Bazı Temel Özellikleri

Kategori : Mobil | Lisans : Creative Commons (by-nc-sa) | En son 12.09.2019 tarihinde güncellendi
Eğitmen : Geleceği Yazanlar Ekibi
Etiketler : web-programlama

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.