5.00 / 1 oy

Node.JS HTTP Sunucusunda Html Sayfaları Yönlendirmek

Node.JS HTTP Sunucu Örneği yazısında Node.JS ile localhost'ta bir sunucu aktive ettik ve 8000 portunda siteye giren ziyaretçiyi (aslında kendimizi) selamladık. Yaznmış olduğumuz kodlar JavaScript kodları olarak sunucunun kodlarıydı ve bu mantığa göre internet sitesinde yapacağımız değişikliklerde sunucuyu tekrar kodlamamız gerekiyor. Ama internet siteleri sürekli güncellenmesi gereken içeriklere sahip olan yapılardır ve sunucunun kendisini kodlamaya gerek kalmadan html dosyaları üzerinden bu değişiklikleri yapabiliyor olmalıyız. Bu sebeple uygulamamıza iki farklı htmlş dosyası ekleyeceğiz ve gelen request'in url'sine göre hangi html dosyasını göstereceğimizi bir if yapısı içinde seçeceğiz. Eğer kullanıcı bu iki url dışında bir url ile sunucuya istek gönderirse de ona 404 sayda bulunamadı cevabı ileteceğiz. Html dosyalarını kullanabilmek için de File system (fs) modülünü kullanacağız.

Önceki uygulamaya iki adet html dosyası ekliyorum: merhaba.html ve giris.html dosyaları:

merhaba.html Dosyası

<html>
    <body>
        <p><strong>Merhaba</strong></p>
    </body>
</html>

 

giris.html Dosyası

<html>
    <body>
        <input type="text" placeholder="Kullanıcı Adı"/>
        <input type="password" placeholder="Parola"/>
        <input type="button"/>
    </body>
</html>

Şimdi uygulama.js dosyamızda gelen isteği yönlendirebileceğimiz bir yapı geliştirelim.

var sunucu = require('http');
var fs = require('fs');

function merhaba (request, response) {
    if (request.url == '/') {
        response.writeHeader(200, {'Context-Type':'text-plain'});
        fs.createReadStream('./merhaba.html').pipe(response);
        //response.end();
    }
    else if (request.url == '/giris') {
        response.writeHeader(200, {'Context-Type':'text-plain'});
        fs.createReadStream('./giris.html').pipe(response);
        //response.end();
    }
    else {
        response.writeHeader(404, {'Context-Type':'text-plain'});
        response.write('Hatali url');
        response.end();
    }
};

sunucu.createServer(merhaba).listen(8000);
console.log('yine ben geldim :)');

Şimdi cmd'den önceki çalışan Node.JS sunucusıu varsa ctrl+c ile sonlandırarak yeniden aşağıdaki gibi çalıştıralım:

C:\NodeJS Dosyalar\HttpSunucu>node uygulama.js
yine ben geldim :)

Artık sadece ana dizine ve giris sayfalarına giriş yapılabilir bir yapımız var ve kullanıcıları diğer url'ler için 404 response'u veren bir sunucu kodlamış olduk. giris ve merhaba sayfaları için de içeriklerimizi html dosyalarına kodladık ve değişiklikler yaptığımızda sadece html dosyalarını değiştirerek siteyi değiştirebiliyoruz, böylece her değişiklik için sunucuyu yeniden kodlamaya ya da kapatıp yeniden açmaya da gerek kalmamış oldu.

utku33

18.08.2020 01:01

Bu soru 1 kez yanıtlandı.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Node.JS HTTP Sunucusunda Html Sayfaları Yönlendirmek

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.