Node.js URL Modülü


Yerleşik URL Modülü

URL modülü, bir web adresini okunabilir parçalara böler.

URL modülünü dahil etmek için şu require() yöntemi kullanın:

var url = require('url');

Yöntemle bir adresi ayrıştırırsanız, adresin url.parse() her bir bölümünü özellikler olarak içeren bir URL nesnesi döndürür:

Örnek

Bir web adresini okunabilir parçalara ayırın:

var url = require('url');
var adr = 'http://localhost:8080/default.htm?year=2017&month=february';
var q = url.parse(adr, true);

console.log(q.host); //returns 'localhost:8080'
console.log(q.pathname); //returns '/default.htm'
console.log(q.search); //returns '?year=2017&month=february'

var qdata = q.query; //returns an object: { year: 2017, month: 'february' }
console.log(qdata.month); //returns 'february'

Node.js Dosya Sunucusu

Artık sorgu dizesini nasıl ayrıştıracağımızı biliyoruz ve önceki bölümde Node.js'nin bir dosya sunucusu gibi davranmasını öğrendik. İkisini birleştirelim ve müşterinin istediği dosyayı sunalım.

İki html dosyası oluşturun ve bunları node.js dosyalarınızla aynı klasöre kaydedin.

yaz.html

<!DOCTYPE html>
<html>
<body>
<h1>Summer</h1>
<p>I love the sun!</p>
</body>
</html>

kış.html

<!DOCTYPE html>
<html>
<body>
<h1>Winter</h1>
<p>I love the snow!</p>
</body>
</html>


İstenen dosyayı açan ve içeriği istemciye döndüren bir Node.js dosyası oluşturun. Bir şeyler ters giderse, bir 404 hatası atın:

demo_fileserver.js:

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

http.createServer(function (req, res) {
  var q = url.parse(req.url, true);
  var filename = "." + q.pathname;
  fs.readFile(filename, function(err, data) {
    if (err) {
      res.writeHead(404, {'Content-Type': 'text/html'});
      return res.end("404 Not Found");
    } 
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(data);
    return res.end();
  });
}).listen(8080);

Dosyayı başlatmayı unutmayın:

demo_fileserver.js'yi başlatın:

C:\Users\Your Name>node demo_fileserver.js

Bilgisayarınızda aynı adımları izlediyseniz, bu iki adresi açarken iki farklı sonuç görmelisiniz:

http://localhost:8080/yaz.html

Bu sonucu üretecek:

Summer

I love the sun!

http://localhost:8080/winter.html

Bu sonucu üretecek:

Winter

I love the snow!