Routing in Express.js

Modular Routing

こんなシナリオを想像してみてください。 あなたはペットを販売するお店を経営していて、お客さんがあなたからウサギやネコを買いたいと思っています。

上で定義した基本的なルーティング メソッドを使用すると、コードは次のようになります:

同じルートを複数回記述していることに注意してください。

しかし、ルートを何度も記述すると、冗長性やタイプミスが増えます。 さらに、私たちのコードをよりモジュール化することは、良い習慣として役立ちます。

プログラマーとして、コードをよりきれいに見せたいと常に思っています。 上のコードを読みやすくするために、2つの方法を使うことができます。

app.routeを使う

ここで、app.routeの出番です。 パスの記述は一度で済みますし、複数のルートハンドラをチェーンすることもできます。

app.routeを実装するには以下のようにします。

コードがすっきりして、各HTTPリクエストのルートを一度だけ入力しなければならなくなりました。

しかし、もうひとつ注意点があります。usernameusernameを何度も入力することは、タイプミスや冗長性を助長します。

express.Router()

express.Router()Router インスタンスは、完全なミドルウェアとルーティング システムであるため、しばしば「ミニ アプリ」と呼ばれます。

app.Router()app.Routermodule.exports を使用してインスタンスをエクスポートする必要があります。

module.exportsの使用に関する詳細は、以前の記事を参照してください。

この例では、usernameidのパラメーターを含むような、単純なパスを処理するだけにします。

routerExample.jsでは:

router.route()app.route/:username/:idで終わる限り、定義された通りに以下のコードを実行してください」とあります。”

これを使うには、別のモジュールであるmain.jsを使います。

コメントにあるように、app.userouteExample.jsに、第1パラメータで始まるルートを持つ関数を実行するように指示します。 最初のパラメータは出発点と言えます。

例えば、6行目によると、‘/cats’で始まるGETとPOSTのリクエストを処理するようになります。

いつものように、routeExampleapp.useでの開始点だけです。

コードを実行するには、ターミナル ウィンドウで node maincURL を使用します。

ミドルウェアを使用したexpress.Routerでの異なるルート

この例では、ペットショップのBirdsホームページに移動し、それぞれのパスがリクエストされた時間を出力するミドルウェア関数、timeLogを定義します。

birds.js:

ではmain.jsとなっています。

var birds = require('./birds')
app.use('/birds', birds) //handle /birds and /birds/about

コードを実行するためにnodecURLを使用します。

クライアント側のウィンドウの出力
クライアント側のウィンドウの出力。

サーバー側のウィンドウの出力。サイドウィンドウの出力

このように。 express.Routerでは、ミドルウェアの機能を特定のパスでのみ実行することができます。

コメントを残す

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