Node.js Üzerine – 2. Bölüm (farklı url’ler çağırma ve değişken alma)

 

Merhaba dostlar; bugün node.js üzerine ikinci bölümümüzü oluşturacağız ve biraz daha ilerleyeceğiz. İlk bölümde node.js temellerini konuşmuştuk, basit bir server kurarak “hello world” yazdırmıştık. Bu bölümde ise farklı url’ler çağırmayı ve url üzerinden değişken alarak onları kullanmayı öğreneceğiz. Hemen başlayalım konuşmaya.

İlk olarak, bir önceki node.js yazımda 8080 portunu dinlediğimizi ve tarayıcınızda localhost/8080 linkini açtığınızda, res.write() fonksiyonu ile ne yazdırdıysak onu gördüğümüzü hatırlıyorsunuzdur. Hatırlamıyorsanız 1. bölüme tekrar göz atmayı unutmayın.

localhost/8080 linkinin bize istediğimiz sayfayı vermesi olağan bir şey ama peki localhost/8080/anasayfa gibi bir ekleme yaparsak ne olacak? Başka sayfaları sorgulatmadığımız için yine aynı sayfayı yani “hello world” mesajını göreceğiz. Şimdi yazacağımız kod ile farklı sayfalar oluşturalım ve sorgulatalım hatta olmayan bir link girildiğinde de “aradığınız sayfa bulunamıyor” mesajı verdirelim,

1.) Kullanıcılara farklı urllerde farklı sayfalar göstermek

Bunun için yeni bir JavaScript dosyası açalım ve adını urldeneme.js koyalım. Kaydettiğiniz yer ise yine C:\users\bilgisayar_adınız\ dizini olsun.
Planımız ise şöyle olsun, ilk başlangıç sayfamız bizim ana sayfamız olsun, ikinci sayfamız diziler, üçüncü sayfamız da filmler olsun. yani localhost/8080 sayfasında “hoşgeldiniz” mesajı yazdıralım, localhost/8080/diziler url’si çağırıldığı zaman “Şuan diziler bölümündesiniz” ve filmlerde de aynı şekilde bir mesaj yazdıralım:

urldeneme.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var http = require('http');
var url = require('url');

var server = http.createServer(function(req, res) {

var page = url.parse(req.url).pathname;

res.writeHead(200, {"Content-Type": "text/plain"});

if (page == '/') {

res.write('Anasayfaya hoşgeldiniz.');
}

else if (page == '/diziler') {

res.write('Şuan diziler bölümündesiniz, keyfini çıkarın.');
}
else if (page == '/filmler') {

res.write('Şuan Filmler bölümündesiniz, keyfini çıkarın.');
}

else{

res.write('Aradığınız sayfaya ulaşılamamaktadır. 404.');
}
res.end();
});
server.listen(8080);

Yukarıda ki kodu serverınızda çalıştırdığınızda farklı url’lerin farklı mesajlar yazdığını göreceksiniz. Şimdi ise önceki bölümdeki koddan farklı olan kısımları anlatalım.

1
var url = require('url');

Öncelikle yeni node modulümüz olan “url” den bahsedelim. Bu modül ile kullanıcının hangi url’i request ettiğini tespit edebileceğiz.

1
var page = url.parse(req.url).pathname;

Sonrasında ise üstteki kod ile page değişkenine url’mizde istenen sayfanın adını atadık ve else if’ler ile koşullar koyarak page değişkenimizi kıyasladık. Aslında şuan çok basit bir mantık ile sayfalarımızı yönlendirmeyi öğrendik. İleride daha kapsamlı örneklerde kullanacağız bu yöntemi.

2.) Url sonuna değişken alma ve kullanma

Şimdi ikinci kısma geçelim ve url’mizin sonuna değişkenler koyalım ve bu değişkenleri kullanmayı öğrenelim.

http://localhost:8080/page?ad=Ahmet&soyad=Kılınç

Örneğin üstteki gibi bir url’miz olsun. ad ve soyad değişkenlerinin değerlerini kontrol etmek ve yazdırmak gibi işlemleri yapacağımız kodumuzu aşağıda paylaşacağım ve sonrasında farklı olan kısımları açıklayacağım. Yeni bir deneme dosyası açalım ve adını urldegiskendeneme.js koyalım.

urldegiskendeneme.js:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var http = require('http');
var url = require('url');
var querystring = require('querystring');

var server = http.createServer(function(req, res) {
var params = querystring.parse(url.parse(req.url).query);
res.writeHead(200, {"Content-Type": "text/plain"});
if ('ad' in params && 'soyad' in params) {
res.write('Adınız ve Soyadınız: ' + params['ad'] + ' ' + params['soyad']);
}
else {
res.write('Ad ve soyad tanımlı değil. Lütfen.');
}
res.end();
});
server.listen(8080);

Bir önceki serverımızı Ctrl+C ile durduralım ve “node urldegiskendeneme.js” yazarak yeni serverımızı çalıştıralım ve tarayıcımıza değişkenli url mizi “http://localhost:8080/page?ad=Ahmet&soyad=Kılınç” girelim. Her şey doğru yapıldığında “Adınız ve Soyadınız: Ahmet Kılınç” mesajının yazıldığını görebilirsiniz.

Şimdi kodun yeni kısımlarını ve kullandığımız yeni modulü açıklayalım.

1
var querystring = require('querystring');

querystring” bu iş için kullanacağımız modül. Bu modül bizim linkimizdeki değişkenleri bölmemize ve ayrı ayrı kullanabilmemize yarayacak. Şimdi nasıl yapıldığına bakalım.

1
var params = querystring.parse(url.parse(req.url).query);

params” değişkenine bütün değişkenlerimizi bu kod ile alabildik. Link’te ne kadar değişken göndermiş olursak olalım değişken ismi ile değerini çağırabileceğiz artık, tek yapmamız gereken params[‘değişken_adı’] diyerek değerini kullanmak. Kodumuzda yaptığımız da tam olarak buydu.

Dostlar bugün node.js ile biraz daha vakit geçirmiş olduk. Bütün bu örneklere geçen bölümde paylaştığım github hesabımdaki node.js-Tutorials reposundan ulaşabilirsiniz. Umarım bugün konuştuklarımız size de faydalı olmuş veya olacaktık, kendinize iyi bakın.

ahmet

Ahmet Kılınç - Software Developer

Bunlar da hoşunuza gidebilir...

1 Cevap

  1. 20 Ocak 2018

    […] açabilmek için if ve else bloklarını kullanmıştık. Ona da tekrar göz atmak isterseniz şu linki […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.