2012-10-04 4 views
19

app.get express.jsの機能に関するドキュメントを探しています。Express app.get documentation

app.get(
    '/path', 
    middleware(), 
    function(req, res) { 
     res.redirect('/'); 
    } 
); 

上記の例には3つのパラメータがあります。通常のドキュメントには2つしか表示されません。私はこの中間パラメータが何をし、どのように使用するかに興味があります。

+3

ミドルウェア関数をスタックすることができます:app.get( '/ account'、fn1、fn2、fn3、function(err、req、res){});その簡単な答えは – chovy

+1

@ chovy thxです。 2015年の新年を祝う! –

答えて

23

これらのドキュメントは、app.METHODdocumentationの一部です(getはサポートされているHTTPメソッドの1つです)。

第2のオプションパラメータは、ミドルウェアと呼ばれ、ミドルウェア関数の配列を渡すことができます。これは、3番目のパラメータコールバック(実際のルートハンドラ)の前に呼び出される関数であり、ミドルウェア関数の責任は、コードがDRY(自分自身を繰り返さない)の原則に従うことを可能にすることです。

ミドルウェア機能の例には、権限チェック、アクセス検証、セッションの検証(ユーザーがログインしていない場合はログインページに移動)などがあります。

複数のルートで同じ動作が必要な場合があるため、ミドルウェアを使用して同じコードを何度も書き込む必要はありません。

+0

私はいくつかのミドルウェア機能を作りたいと思っています。私は引数として 'req、res、next'を取る関数を持つサンプルコードを見つけましたが、それを使う方法がわかりません。 – ThomasReggi

+1

ミドルウェアの関数は、ここでは常に、 'request'オブジェクト、' response'オブジェクト、およびミドルウェアの完了時に呼び出す 'next'コールバックの3つのパラメータをとります。 'next'にエラーのErrorオブジェクトを渡すか、次のコールバックに制御を渡すためのパラメータを渡しません。 – JohnnyHK

+0

別の方法のミドルウェアの例を知っていますか。ノード/エクスプレスがパスの下でparamsを委任するために使用します。たとえば、 '/ login?name = thomas'から'/login?age = 23'をルートしますか?私は実際にこれの例を使用することができます。私は 'req.query.age'と' req.query.name'が 'undefined'かどうかに基づいて条件付きで使うことができますが、実際は洗練されていません。ミドルウェアは解決策ですか? – ThomasReggi