ホームページ > ウェブフロントエンド > jsチュートリアル > 簡単にnodejsサーバーを作成する(4):ルーティング

簡単にnodejsサーバーを作成する(4):ルーティング

PHPz
リリース: 2018-09-30 09:59:44
オリジナル
1261 人が閲覧しました

サーバーは、さまざまな URL またはリクエストに基づいてさまざまな操作を実行する必要があります。このステップはルーティングを通じて実装できます。

最初のステップでは、リクエスト URL のパスを解析する必要があり、url モジュールを導入します。

ブラウザによって要求された URL パスを見つけるために、onRequest() 関数にロジックを追加しましょう。

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 + " received.");
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
 }
 http.createServer(onRequest).listen(8888);
 console.log("Server has started.");
}
exports.start = start;好了,pathname就是请求的路径,我们可以用它来区别不同请求了,这样一来我们就可以对来自/start和/upload的请求使用不同的代码来处理。
ログイン後にコピー

次に、ルートを記述して、router js ファイルというルーターを作成しましょう。

function route(pathname) {
 console.log("About to route a request for " + pathname);
}
exports.route = route;
ログイン後にコピー

このコードでは、まずルーティングとサーバーを統合しましょう。

次に、サーバーの start() 関数を拡張し、start() でルーティング関数を実行し、パス名をパラメータとして渡します。

var http = require("http");
var url = require("url");
function start(route) {
 function onRequest(request, response) {
  var pathname = url.parse(request.url).pathname;
  console.log("Request for " + pathname + " received.");
  route(pathname);
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();
 }
 http.createServer(onRequest).listen(8888);
 console.log("Server has started.");
}
exports.start = start;
ログイン後にコピー

同時に、ルーティング関数をサーバーに挿入できるように、index.js を拡張します。

var server = require("./server");
var router = require("./router");
server.start(router.route);
ログイン後にコピー

index.js を実行し、任意のパスにアクセスします。 /upload など、コンソール出力「About to Route a request for /upload.

」が表示されます。これは、HTTP サーバーとリクエスト ルーティング モジュールがすでに相互に通信できることを意味します。

上記はこの章の全内容です。その他の関連チュートリアルについては、Node.js ビデオ チュートリアル をご覧ください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート