Modul URL Node.js
Modul URL Bawaan
Modul URL membagi alamat web menjadi bagian-bagian yang dapat dibaca.
Untuk menyertakan modul URL, gunakan require()
metode:
var url = require('url');
Parsing alamat dengan url.parse()
metode, dan itu akan mengembalikan objek URL dengan setiap bagian dari alamat sebagai properti:
Contoh
Pisahkan alamat web menjadi bagian yang dapat dibaca:
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'
Server File Node.js
Sekarang kita tahu cara mengurai string kueri, dan di bab sebelumnya kita telah mempelajari cara membuat Node.js berperilaku sebagai server file. Mari kita gabungkan keduanya, dan sajikan file yang diminta oleh klien.
Buat dua file html dan simpan di folder yang sama dengan file node.js Anda.
musim panas.html
<!DOCTYPE html>
<html>
<body>
<h1>Summer</h1>
<p>I love
the sun!</p>
</body>
</html>
musim dingin.html
<!DOCTYPE html>
<html>
<body>
<h1>Winter</h1>
<p>I love
the snow!</p>
</body>
</html>
Buat file Node.js yang membuka file yang diminta dan mengembalikan konten ke klien. Jika ada yang tidak beres, lemparkan kesalahan 404:
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);
Ingatlah untuk memulai file:
Mulai demo_fileserver.js:
C:\Users\Your Name>node demo_fileserver.js
Jika Anda telah mengikuti langkah yang sama di komputer Anda, Anda akan melihat dua hasil berbeda saat membuka kedua alamat ini:
http://localhost:8080/summer.html
Akan menghasilkan hasil ini:
Summer
I love the sun!
http://localhost:8080/winter.html
Akan menghasilkan hasil ini:
Winter
I love the snow!