Node.js URL Module






<!--
main_leaderboard, all: [728,90][970,90][320,50][468,60]
-->



Node.js URL Module



❮ Previous
Next ❯



The Built-in URL Module


The URL module splits up a web address into readable parts.



To include the URL module, use the require()
method:




var url = require('url');



Parse an address with the url.parse()
method, and it will return a URL object with each part of the address as
properties:



Example


Split a web address into readable parts:



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'

Run example »




Node.js File Server



Now we know how to parse the query string, and in the previous chapter we
learned how to make Node.js behave as a file
server. Let us combine the two, and serve the file requested by the client.


Create two html files and save them in the same folder as your node.js files.



summer.html



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



winter.html



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







<!--
mid_content, all: [300,250][336,280][728,90][970,250][970,90][320,50][468,60]
-->





Create a Node.js file that opens the requested file and returns the content
to the client. If anything goes wrong, throw a 404 error:



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);



Remember to initiate the file:



Initiate demo_fileserver.js:



C:UsersYour Name>node demo_fileserver.js


If you have followed the same steps on your computer, you should see two
different results when opening these two addresses:


http://localhost:8080/summer.html



Will produce this result:



Summer


I love the sun!




http://localhost:8080/winter.html



Will produce this result:



Winter


I love the snow!









❮ Previous
Next ❯

Popular posts from this blog

Chat program with C++ and SFML

Function to Return a JSON Like Objects Using VBA Collections and Arrays

Will my employers contract hold up in court?