我来自tornado,在这里有一个requesthandler类,您可以匹配查询以将其定向到正确的requesthandler。
在node.js中如何操作?像那样???是吗?

http=require ('http');
url=require('url')


function case1(request,response){ ... }

function case2(request,response){ ... }

http.createServer(function(request, response) {
     var q=url.parse(request.url, true).query
     switch(true){
       case /friend/.test(q):
           case1(request,response);
           return;
       case /foes/.test(q):
           case2(request,response);
           return;
     }
}).listen(9999)

最佳答案

使用node.js'http.Server,您可以自行建立任何路由。
而且,你已经接近这个了。不过,您需要基于解析的urlpathname而不是query进行测试。

var pathname = url.parse(request.url, true).pathname;

switch (true) {
    case /\/friend/.test(pathname):
        case1(request, response);
        break;

    case /\/foes/.test(pathname):
        case1(request, response);
        break;
}

您可能还需要包括测试request.method
case request.method === 'GET' && /\/friend/.test(pathname):

或者,正如soulcheck所提到的,有numerous libraries/framework available具有用于路由的已建立api,包括expressrestify
var app = express();

app.get('/friend', case1);
app.get('/foes', case2);

10-06 11:15