ルーティング

Expressにおけるルーティングについて学習します。

* ルーティングとは
* メソッド
* Route paths
* Route handlers
* Response methods
* app.route()
* express.Router

ルーティングとは

Expressにおける「ルーティング」とは、「ユーザーからのアクセスに対するレスポンスを定義する」ことを言います。「ユーザーからのアクセス」とは、具体的には「URIメソッドの組み合わせ」です。
例えば、ユーザーがhttp://サーバ名/aにアクセスしたとします。これは、「/aというURIに、GETメソッドでアクセスした」ということになります。
これに対し、サーバ側では、対応するリソースを返すのか、内部で何らかの処理を実行してその結果を返すのか、はたまた「ファイルがないよ」などのメッセージを返すのかなどなど、URIとメソッドに対応するサーバ側の処理を決める必要があります。これをルーティングと呼びます。

公式サイトには、下記のようなサンプルが公開されています。

var express = require('express');
var app = express();
// respond with "hello world" when a GET request is made to the homepage
app.get('/', function(req, res) {
res.send('hello world');
});

これは、「’/’というURIに、GETメソッドでアクセスがあったら、’hello world’という文字列を返す」と定義しています。
ちなみに、このサイトでもApacheと.htaccess、PHPを使用してURL毎に動作を定義していますが、それと同じようなイメージです。


メソッド

メソッド」とは「方法」「方式」という意味ですが、ここではHTTPを使ったデータの送受信方法を指します。よく使われるGETPOSTを含め、下記のメソッドが用意されています。

HTTP/1.1(RFC 2616)で定義されているメソッド

get
データを取得する
post
データを送信する
put
データを登録する
head
データのヘッダ部分のみを取得する
delete
データを削除する
options
利用できるメソッド等の情報を取得する
trace
サーバまでの経路を取得する
connect
サーバとの間でトンネルを確立する

その他WebDAVプロトコルなどで定義されているメソッド

copy, lock, mkcol, move, purge, propfind, proppatch, unlock, report, mkactivity, checkout, merge, m-search, notify, subscribe, unsubscribe, patch, search

また、特殊なメソッドとしてallが用意されています。これは、すべてのメソッドに対して共通の処理を定義したい時に使用します。


Route paths


Route handlers


Response methods


app.route()


express.Router