0

I have written a simple web server in node.js containing 4 modules: index.js, server.js, requestHandler.js router.js

//index.js:
var server = require('./server.js');
var router = require('./router.js');
var requestHandlers = require('./requestHandlers.js');

var handle = {};
handle['/id'] = requestHandlers.getID;

server.start(router.route, handle);


//server.js
var http = require('http')
var url = require('url')

function start(route, handle){
  function onRequest(request, response) {
    var pathname = url.parse(request.url).pathname;
    console.log('Request for ' + pathname + ' received');

    request.setEncoding('utf-8');

    route(handle, pathname, response);
  }

  http.createServer(onRequest).listen(8000);
  console.log("server started");
}

exports.start = start


//requestHandlers.js
var exec = require('child_process').exec;
var querystring = require('querystring');

function getID(response,pathname) {
  console.log('Request handler start was called.');
  console.log(pathname);
  var body = '<html>'+
  '<head>'+
  '<meta http-equiv="Content-Type" content="text/html; '+
  'charset=UTF-8" />'+
  '</head>'+
  '<body>'+
  '<h1> Hello Dude <\h1>'
  '</body>'+
  '</html>';

  response.writeHead(200, {'Content-Type':'text/html'});
  response.write(body);
  response.end();
}
exports.getID = getID;


//router.js
function route(handle, pathname, response, postdata) {

  console.log('About to route a request for ' + pathname);

  if(typeof handle[pathname] === 'function') {
    return handle[pathname](response, pathname);
  } else {
    console.log('No request handler found for ' + pathname);
    response.writeHead(404, {'Content-Type': 'text/plain'});
    response.write('404 Not Found');
    response.end();
  }
}

exports.route = route;

What I want to do now is passing some variables within my request url like that: some.url.com:8000/id=1d2d3d4d?num=123?foo=bar

So that I can get the values of the variables into my code and go on working with them.

Is there some easier approach than just taking the whole pathname and analysing it for ? separators or the id,num,foo tag?

Jace Rhea
  • 4,982
  • 4
  • 36
  • 55
hGen
  • 2,235
  • 6
  • 23
  • 43

1 Answers1

0

You can use url.parse - from the node docs

l.j. cooper
  • 126
  • 6