2015-04-02 133 views
-1

我写了一个简单的web服务器包含4个模块的node.js得到变量从网址: index.js, server.js, requestHandler.js router.js使用节点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; 

我想现在要做的就是通过我像请求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 – 2015-04-02 15:24:47

+0

需要注意的是,在“require”调用结束时不需要有“.js”。这是暗示的。 – tadman 2015-04-02 18:11:29

回答