サーバーは、異なるURLまたはリクエストに従って異なる操作を実行する必要があり、ルーティングを通じてこのステップを実装できます。
最初のステップでは、最初にリクエストURLのパスを解析する必要があり、URLモジュールを導入します。
onrequest()関数にロジックを追加して、ブラウザが要求したURLパスを見つけましょう。
コードコピーは次のとおりです。
var http = require( "http");
var url = require( "url");
function start(){
function onrequest(request、response){
var pathname = url.parse(request.url).pathname;
console.log( "request for" + pathname + "受信");
Response.writehead(200、{"content-type": "text/plain"});
Response.Write( "Hello World");
Response.End();
}
http.createserver(onrequest).listen(8888);
console.log( "サーバーが開始されました。");
}
exports.start = start;
OK、PathNameはリクエストのパスです。これを使用してさまざまなリクエストを区別できるため、さまざまなコードを使用して /startおよび /アップロードからリクエストを処理できます。
次に、ルートを書き、router.jsというファイルを作成します。コードは次のとおりです。
コードコピーは次のとおりです。
関数ルート(PATHNAME){
console.log( "" + pathnameのリクエストをルーティングしようとしています);
}
exports.route = route;
このコードは何もしません。最初にルートとサーバーを統合します。
次に、サーバーのstart()関数を拡張し、start()でルーティング関数を実行し、パスネームをパラメーターとして渡します。
コードコピーは次のとおりです。
var http = require( "http");
var url = require( "url");
関数開始(ルート){
function onrequest(request、response){
var pathname = url.parse(request.url).pathname;
console.log( "request for" + pathname + "受信");
ルート(pathname);
Response.writehead(200、{"content-type": "text/plain"});
Response.Write( "Hello World");
Response.End();
}
http.createserver(onrequest).listen(8888);
console.log( "サーバーが開始されました。");
}
exports.start = start;
同時に、それに応じてindex.jsを拡張して、ルーティング機能をサーバーに注入できるようにします。
コードコピーは次のとおりです。
var server = require( "./ server");
var router = require( "./ router");
server.start(router.route);
index.jsを実行し、 /アップロードなどのパスにアクセスすると、コンソール出力があります。 /アップロードのリクエストをルーティングしようとしています。
これは、HTTPサーバーとリクエストルーティングモジュールがすでに相互に通信できることを意味します。
次のセクションでは、異なるURL要求に対して異なるフィードバックを実装します。