Web Programlama

Web Programlama

DERS PROGRAMI
Web Programlama 401 Ders Programı

Basit Bir Web Sunucu

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

Node.js'in en ilginç özelliklerinden biri, hiç şüphesiz event-based programming (olaya dayalı programlama) özelliğidir. Bu özellik JavaScript'te, istemci (client) tarafında vardı. Node.js ile server (sunucu) tarafına da aktarılmıştır. Node.js ile bir HTTP sunucusu oluşturmak için, HTTP kütüphanesine (library) ihtiyaç bulunmaktadır. Bir HTTP sunucusunu aşağıdaki şekilde çağırabiliriz:

var HTTP_SUNUCU = require("http");  
HTTP_SUNUCU.createServer(function(request,response){}).listen(8080);

8080 portunda bir olay (event) tetiklendiği zaman, ilk argüman (request) faaliyete geçer. Request nesnesi, porttan gelen taleple ilişkili tüm bilgiyi saklar. Örneğin; bir URL stringini de içerir. Response nesnesi ise sunucudan verilecek cevabı ya da reaksiyonu yönetir.

Aşağıdaki kodda, örnek bir sunucu çalıştıracağız. Çalıştıracağımız sunucunun bileşenlerini tanımlayacağız ve ardından belirleyeceğimiz porttan sunucuyu çalıştıracağız. İçeriği plain/text şeklinde "Turkcell Gelecegi Yazanlar" olarak tanımladığımız için, tarayıcıda göreceğimiz çıktısı “Turkcell Gelecegi Yazanlar” şeklinde olacak. Cevabın statü kodunuysa 200 olarak tanımlayacağız. Her şey yolundaysa bize 200 olarak dönecek.

Aşağıdaki kodu bir Node.js belgesi oluşturun ve içine yazın.

var  HTTP_SUNUCU = require("http");  
HTTP_SUNUCU.createServer(function(request,response){  
    console.log("ILK SERVER DENEYI");  
    response.writeHeader(200, {"Content-Type": "text/plain"});  
    response.write("Turkcell Gelecegi Yazanlar");  
    response.end();  
}).listen(8080);  
console.log("SUNUCU 8080  PORTUNDA CALISIYOR");

Kodu,

node dosyaismi.js

komutuyla çalıştırın. Aşağıdaki çıktıyı elde edeceksiniz:

> SUNUCU 8080  PORTUNDA CALISIYOR

Tarayıcınızda, sunucuyu çalıştırdığınız adresi (127.0.0.1:8080) girdiğinizde aşağıdaki sonucu elde edeceksiniz: