Expressjs-routing
ExpressJS-ルーティング
Webフレームワークは、HTMLページ、スクリプト、画像などのリソースを提供します。 異なるルートで。
次の関数は、Expressアプリケーションでルートを定義するために使用されます-
app.method(path、handler)
このMETHODは、HTTP動詞のいずれか(get、set、put、delete)に適用できます。 リクエストタイプに関係なく実行される代替メソッドもあります。
パスは、リクエストが実行されるルートです。
ハンドラーは、関連するルートで一致する要求タイプが見つかったときに実行されるコールバック関数です。 例えば、
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アプリはこのルートにアタッチされた callback 関数を実行して* "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"
Expressは、同じ関数を使用して特定のルートですべてのタイプのhttpメソッドを処理する特別なメソッド all を提供します。 この方法を使用するには、次を試してください。
app.all('/test', function(req, res){
res.send("HTTP method doesn't have any effect on this route!");
});
この方法は、一般にミドルウェアの定義に使用されます。ミドルウェアの章で説明します。
ルーター
上記のようなルートの定義は、維持するのが非常に面倒です。 メインの index.js ファイルからルートを分離するには、 Express.Router を使用します。 things.js という新しいファイルを作成し、次のように入力します。
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.js
module.exports = router;
*index.js* でこのルーターを使用するには、 *app.listen* 関数呼び出しの前に次を入力します。
var express = require('Express');
var app = express();
var things = require('./things.js');
//both index.js and things.js should be in same directory
app.use('/things', things);
app.listen(3000);
ルート '/things' の app.use 関数呼び出しは、 things ルーターをこのルートにアタッチします。 これで、アプリが「/things」で取得したリクエストはすべて、things.jsルーターで処理されます。 things.jsの '/' ルートは、実際には '/things’のサブルートです。 localhost:3000/things/にアクセスすると、次の出力が表示されます。
ルーターは、懸念事項を分離し、コードの関連部分をまとめるのに非常に役立ちます。 メンテナンス可能なコードの構築に役立ちます。 エンティティに関連するルートを単一のファイルで定義し、上記のメソッドを使用して index.js ファイルに含める必要があります。