2017-08-30 4 views

答えて

3

router.all()はすべてのhttpプロトコルに一致し、router.use()はミドルウェア用で、router.route()はオプションのミドルウェアでHTTP動詞を処理するために使用できる単一ルートのインスタンスを返します。これは何を意味、それはリクエストの方法を重要ではありません...(記事、置く、取得)、もしURLのマッチ: あなたはより多くの情報http://expressjs.com/fr/api.html

+0

私はまだ1、混乱:何デフrouter.all( '/ URL'、楽しい)とrouter.use( '/ URL'、楽しい)との間で実際に?彼らはプロジェクトで同じ効果を持っていますか? 2:router.route()どのようにしてオプションミドルウェアですか? – sinbar

+0

希望のリクエストに応じて、適切なリクエストを送信します。たとえば、サーバーにフォームデータを送信する場合は、POSTリクエストを使用できます。ルートは 'route.post( '/ abc'、fn)'になります。または、DB上で何かを更新する必要がある場合は、PUTリクエストを使用します。私はあなたが完全にこれはhttps://www.tutorialspoint.com/http/http_requests.htm –

+0

router.use()をどのように機能するかを理解するためのHTTPリクエストについては、このチュートリアルを参照してください示唆 は、基本的には、ルータの場合、プロジェクト –

1

router.allのドキュメントをチェックアウトする必要があります、関数を実行します。あなたはモジュラールートやモジュールを書くことができます)(router.use:

EX- router.all( "/ ABC"、fnが)へ/ ABC

router.use()すべての要求のための作業になりますあなたは基本的にルートのミドルウェアを定義します。/PQR /新規または/ PQR/XYZのような/ PQRで始まるすべてのリクエストに対して、今

router.use( "/ PQR"、pqrRoutes)

はpqrRoutes内側にハンドルすることができます。

router.route():これは、単一のURLエンドポイントに対してさまざまなメソッド実装を定義するのに適しています。

あなたは2つのapiエンドポイントを持っていると言うことができます。 router.route()を使用して、これらの異なるAPIハンドラを組み合わせることができます。

router.route( "/ jkl")とrouter.post( "/ jkl" jkl ")。get(fn1).post(fn2)

+0

にオプションを設定することです。あなたはrouter.all( "/ abc"、fn)が/ abc/etcと一致していないということをすべて意味していますか? – sinbar

+0

はい。あなたはそれを正しく持っています。 –

0

app.all()。HTTPメソッドから派生したものではありません。このメソッドは、すべての要求メソッドのパスにミドルウェア関数をロードするために使用されます。

app.all('/secret', function (req, res, next) { 
    console.log('Accessing the secret section ...') 
    next() // pass control to the next handler 
}) 

express.Routerクラスを使用して、モジュール式のマウント可能なルートハンドラを作成します。ルータインスタンスは完全なミドルウェアおよびルーティングシステムです。このため、しばしば「ミニアプリ」と呼ばれます。

次の例では、ルータをモジュールとして作成し、ミドルウェア機能をロードし、いくつかのルートを定義し、ルータモジュールをメインアプリケーションのパスにマウントします。我々は

express.Router

ミドルウェア を使用する場合

var express = require('express') 
var router = express.Router() 

// middleware that is specific to this router 
router.use(function timeLog (req, res, next) { 
    console.log('Time: ', Date.now()) 
    next() 
}) 

Bascially我々は.USEを使用するモジュラー、マウントルートハンドラを作成するためにexpress.Routerクラスを使用します。ルータインスタンスは完全なミドルウェアおよびルーティングシステムです。このため、しばしば「ミニアプリ」と呼ばれます。

次の例では、ルータをモジュールとして作成し、ミドルウェア機能をロードし、いくつかのルートを定義し、ルータモジュールをメインアプリケーションのパスにマウントします。 var express = require( 'express') var router = express。

ルーターのこのインスタンスには、明示的な定義の下で定義された名前ルーターがあります。ここで がルータのドキュメントである https://expressjs.com/en/guide/routing.html

0

Router.use()

ルータは、ミドルウェアのように振る舞うと、他のルータにアプリによって.use()dすることができます。言い換えれば、ルータを使用すると、大きなアプリを後でまとめられる多数のミニアプリにチャンクすることができます。小規模なアプリの場合、これは過度の可能性がありますが、「app.jsファイルが大きくなっています。」と思うとすぐに、ルータでアプリを分割することを考えてください。

router.route(path)

router.route(path)方法は鎖HTTP動詞の方法に使用されます。 、我々はできる(例えば、/ポスト/ 53fb401 dc96c1caa7b78bbdb)のid URL:たとえば、POSTを持って削除、作成、読み取り、更新、および (CRUD)サーバーで、GET、PUT、および/ポスト/のためのエンドポイントを削除次のようにルータのクラスを使用します。

var express = require('express'); 
var router = express.Router(); 
router.param('postId', function(request, response, next) { 
// Find post by ID 
// Save post to request 
request.post = { 
name: 'Node.js', 
url: 'http://your-url/node-js-blog' 
    }; 
return next(); 
}); 

Router.route(path)方法は、各ルートの再タイピングルータよりも、あなたのコードを構造化するために、より魅力的な方法である 連鎖する方法の利便性を提供します。 代わりに、私達はちょうど私たちが app.VERB()を使用するようルートを定義するためにrouter.VERB(path, [callback...], callback)を使用することができます。同様に、router.use()router.param()方法はapp.use()app.param()と同じように働きます。

関連する問題