H O K K A
Haber Yazılımında Kampanya İncele
1 Mayıs 2015

Node js Kullanımı ve Temel Anlayışı

Node js sayesinde performanslı bir şekilde işlemler esastır. V8 javascript motoru üzerinde çalışan bir platform olan node js daha sıralı bir şekilde olan işlemler dizisi meydan getiren bir platform olmaktadır. Bu sayede işlemler beklemeye kalmadan yani bloklanan işlemlerin yanı sıra bloklanmayan işlemlerde aynı anda çalışmaktadır. Performans açısından bakıldığı zaman büyük oranda fayda sağlayan bu yapı ile daha verimli süreçler ortaya çıkmaktadır. Bu alanda da performans çok önemli olduğu için ideal bir çözüm ortağı olmaktadır. Bunu günlük hayattan bir örnekle anlatalım. Örneğin bir kantinde çalışan tek bir eleman olduğunu düşünelim. Kantinde gofret, su, cola vs. gibi hazır ürünlerin olduğu ve bunun yanı sıra da hazırlanma ihtiyacı tost ve hamburger gibi ürünlerin olduğunu varsayalım. Kantinde ki sırayı bekleyen kişilerin tek bir kişinin hizmet vermesine bağlı olarak ortaya çıkan zaman alıcı durumu bir gözünüzün önüne getirin. Tost yaparken satışlar duracak veya satış yaparken hamburger yapmak imkansız olacaktır. İşte bunun için eleman sayısını artırmak yada daha iyi stratejiler geliştirmek gerekmektedir. Siz tostu isterken kısa bir süre beklersiniz ve satışta aynı anda devam eder sırada ki işlemde yapılır ama süreç hiç durmadan işler yani biraz zaman alıcı olsa bile hiçbir işlem durmadan işler. Node js bloklanan işlemleri işleme alıp diğer işlemlere de devam eder bu sayede performans için daha iyi çözümler ortaya çıkar.

request(url, function (error, response, body) {

if (error) {

console.log(“Couldn’t get page because of error: “ + error);

return;

}

var $ = cheerio.load(body),

links = $(“.r a”);

links.each(function (i, link) {

// get the href attribute of each link

var url = $(link).attr(“href”);

// strip out unnecessary junk

url = url.replace(“/url?q=”, “”).split(“&”)[0];

if (url.charAt(0) === “/”) {

return;

}

totalResults++;

yukarıda verilen kod yapısında indirme ve sayfa yükleme işlemleri yapılmaktadır. Kurulan döngü yapısı sayesinde kod dinamik bir şekilde işleyecektir. Hata durumlarında kurulan if yapısı sayesinde gerekli mesajlar verilmiştir. Örneğin sayfanın herhangi bir sorundan dolayı yüklenememesi durumunda sayfada bir sorun oluştu ve yükleme başarısız oldu gibi bir mesaj veriliyor. Eğer hata meydana gelmez ise gerekli işlem kurulan döngü yapısı sayesinde performanslı bir şekilde işleyecektir.

request(url, function (error, response, body) {

// load the page into Cheerio

var $page = cheerio.load(body),

text = $page(“body”).text();

Bu kod yapısı ile de sayfadan kelime çekmek mümkün olmaktadır. Sayfanın body bölümünden yapılan aramalar sayesinde istenilen kelimelere ulaşılabiliyor.