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!