Advertisements

Webフレームワークは、HTMLページ、スクリプト、画像などのリソースを異なるルートで提供します。

以下の関数は、Expressアプリケーションでルートを定義するために使用されます –

app.method(path, handler)

このMETHODは、HTTPの動詞であるget、set、put、deleteのいずれかに適用できます。

Path は、リクエストが実行されるルートです。

Handler は、関連するルートで一致するリクエスト タイプが見つかったときに実行されるコールバック関数です。 例えば、

var express = require('express');var app = express();app.get('/hello', function(req, res){ res.send("Hello World!");});app.listen(3000);

アプリケーションを実行してlocalhost:3000/helloにアクセスし、サーバーがルート”/hello “でgetリクエストを受信した場合、Expressアプリはこのルートに接続されたコールバック関数を実行し、レスポンスとして「Hello World! 例えば、

var express = require('express');var app = express();app.get('/hello', function(req, res){ res.send("Hello World!");});app.post('/hello', function(req, res){ res.send("You just called the post method at '/hello'!\n");});app.listen(3000);

このリクエストをテストするには、ターミナルを開き、cURLを使用して次のリクエストを実行します –

curl -X POST "http://localhost:3000/hello"

Curlリクエスト

特別なメソッドです。 allという特殊なメソッドがExpressには用意されており、特定のルートですべての種類のhttpメソッドを同じ関数で処理することができます。

この方法は一般的にミドルウェアの定義に使用されますが、これについてはミドルウェアの章で説明します。

ルーター

上記のようなルートの定義は、メンテナンスが非常に面倒です。 メインのindex.jsファイルからルートを分離するために、Express.Routerを使用します。

var express = require('express');var router = express.Router();router.get('/', function(req, res){ res.send('GET route on things.');});router.post('/', function(req, res){ res.send('POST route on things.');});//export this router to use in our index.jsmodule.exports = router;

さて、このルーターをindex.jsで使用するには、app.listen関数呼び出しの前に次のように入力します。 これで、アプリが「/things」で受け取るリクエストは、things.jsのルーターで処理されるようになります。 things.jsの’/’ルートは、実際には’/things’のサブルートとなっています。

Router Things

ルーターは、懸念事項を分離し、コードの関連部分をまとめておくのに非常に役立ちます。 保守性の高いコードを構築するのに役立ちます。

Advertisement

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です