2015-04-02 2 views
-1

расслоение плотной я написал простой веб-сервер в Node.js, содержащих 4 модулей: index.js, server.js, requestHandler.js router.jsполучить переменную из URL с помощью узла

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

То, что я хочу сделать сейчас проходит некоторые переменные внутри моего запроса URL, как что: some.url.com:8000/id=1d2d3d4d?num=123?foo=bar

Чтобы я мог получить значения переменных в свой код и продолжать работать с ними.

Есть ли более простой подход, чем просто взять весь путь и проанализировать его для разделителей ? или тега id,num,foo?

+0

Проверить этот вопрос: http://stackoverflow.com/questions/6912584/how-to-get-get-query-string-variables-in-node-js –

+0

В качестве примечания, нет необходимости иметь «.js» в конце вызовов 'require'. Это подразумевается. – tadman

ответ

Смежные вопросы