2016-04-14 11 views
0

エクスプレスドキュメントhereに基づいて、インスタンスを表現するHTTPメソッドを追加し、ルートが一致したときにコールバック関数を実行することができます。 複数のコールバックルートハンドラを実行することもできます。ルートハンドラは、次の例に示すように、関数、関数の配列、またはその両方の組み合わせの形式にすることができます。エクスプレスルートに複数のコールバック関数を渡す

app.get('/', function (req, res) { 
    res.send('GET request to the homepage'); 
}); 

または配列

var cb0 = function (req, res, next) { 
    console.log('CB0'); 
    next(); 
    } 

    var cb1 = function (req, res, next) { 
    console.log('CB1'); 
    next(); 
    } 

    var cb2 = function (req, res) { 
    res.send('Hello from C!'); 
    } 

    app.get('/example/c', [cb0, cb1, cb2]) 

を使用してしかし、我々のアプリケーションでは、私は、構文の開発者が使用した参照一切配列[]が、2のコールバック関数が渡されませんがあり

app.get('/example/c',cb0, cb1) 

お知らせですコンマで区切られています。これは機能しています。しかし、ちょうど好奇心をどのように?

答えて

0

Javascriptでは、関数定義に関係なく、任意の数の引数を関数呼び出しに渡すことができます。たとえば、function x(a, b){}は、3つ以上の引数で呼び出すことができます。プログラマーは、関数呼び出しが受け取る引数の数をあらかじめ知っていないときは、特別変数であるargumentsを利用します。これは、express(.get、.put、。postなど)のルーティング関数の場合です。彼らはあなたが渡す引数の数を取って、documentationで見ることができるミドルウェア関数として扱います。

関連する問題