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!