1

私は竜巻から来ました。そこでは、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)
4

2 に答える 2

2

Node.jsを使用http.Serverすると、任意のルーティングを自分で確立できます。

そして、あなたはこれに近づいています。pathnameただし、ではなく、解析された URL に基づいてテストする必要があります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が述べたように、Expressrestifyなど、ルーティング用に確立された API を持つ多数のライブラリ/フレームワークが利用可能です

var app = express();

app.get('/friend', case1);
app.get('/foes', case2);
于 2013-09-04T10:16:32.513 に答える