This tutorial will help, learn how to route the requests in Node.js, for correct routing it is
necessary to get the exact pathname and pass correct values via query string. We can
get all these information through the request object. Hence to get right pathname and parameters
that are passed via querystring we use url and querystring modules of Node.js URL module
helps to extracts requested path and the querystring whereas querystring module parse the query string and get the requested parameters.
1- Now we will create a test.js file with the following code:
var testhttp = require("http");
var url = require("url");
function execute(route_request_obj){
function onRequest(request, response) {
var path = url.parse(request.url).pathname;
route_request_obj(path);
// In the below line writeHead is a function of response object
response.writeHead(200,{"content-type":"text/plain"});
// In the below line write is a function of response object this will display on the browser
response.write('Request for '+path+ ' received');
//end function of response object ends the response
response.end();
}
// In the below line createServer is a function in http module of Node
var server = testhttp.createServer(onRequest);
server.listen(8831);
}
exports.execute_obj = execute;
console.log("testhttp server has started.");
2- Now create another file router.js
function route_request(path){
console.log("About to route a request for " +path);
}
exports.route_request_obj = route_request;
3- Create a file index.js
var testhttp_obj = require("./test");
var router = require("./router");
testhttp_obj.execute_obj(router.route_request_obj);
4- Now go to the terminal and execute the following command
user@username:~$ cd /var/www/html/project_root_directory
user@username:/var/www/html/project_root_directory$ nodejs index.js
output on the browser: Request for /index.js received
output on the terminal: testhttp server has started
about to route a request for /index.js
about to route a request for /favicon.ico //put a check to avoid the message for favicon.ico
0 Comment(s)