2016-10-06 6 views
2

/fooでGETリクエストを実行すると、私のリクエストは例Aの最初のミドルウェア機能を通過しますが、例Bではバイパスしますか?app.use()とapp.get()の処理方法が異なります

例A

GET「/ foo」という

app.use('/', function(req, res, next) { 
    console.log("req passes through here"); 
    next(); 
} 

app.get('/foo', function(req, res, next) { 
    console.log("then req passes through here"); 
} 

例B

GET「/ foo」という

app.get('/', function(req, res, next) { 
    console.log("this part is bypassed..."); 
    next(); 
} 

app.get('/foo', function(req, res, next) { 
    console.log("then req passes through here"); 
} 

app.use()app.get()同じパス引数を使用。

したがって、ミドルウェアは/にマウントされていますが、例Bでは実行されません。

答えて

2

app.use()は、すべての呼び出しですべてのメソッド(GET、PUT、POSTなど)に指定されたパスを使用するようにアプリに指示します。具体app.use

マウント指定されたパスで指定されたミドルウェア機能または機能:要求されたパスのベースパスに一致したときミドルウェア機能が実行されます。

app.get()は、特定のパスの特定のメソッド(GET)のパスのみを使用するように指示します。

HTTP GET要求を、指定されたコールバック関数で指定されたパスにルーティングします。

関連する問題