2016-04-14 74 views
0

Ekspres dökümantasyona bağlı olarak here örneğini ifade etmek için HTTP yöntemini ekleyebilir ve aynı zamanda rota eşleştiğinde geri arama işlevini yürütebiliriz. Ayrıca, birden fazla geri arama rota işleyicisi de yürütebiliriz. Rota işleyicileri, aşağıdaki örneklerde gösterildiği gibi bir işlev, bir dizi işlev veya her ikisinin birleşimi biçiminde olabilir.Birden çok geriçağırım fonksiyonunu aktarma Rotayı Ekspres etmek için

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

veya kullanılan dizi

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]) 

Ancak, uygulama i kullanmıştır sözdizimi geliştiricisi bkz

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

bir dizi [], fakat 2 geri arama fonksiyonları geçirilir vardır Uyarı virgülle ayrıldı. Bu çalışıyor. Ama sadece merak nasıl?

cevap

0

Javascript'te, işlev tanımının ne olduğu önemli olmaksızın herhangi bir sayıda argümanı işlev çağrısına geçirebilirsiniz. Örneğin function x(a, b){}, ikiden fazla argümanla çağrılabilir. Programcılar, bir işlev çağrısının kaç argüman alacağını önceden bilmedikleri zaman arguments özel değişkeninden yararlanırlar. Bu, yönlendirme işlevlerinde (.get, .put, .post, vb.) Durum böyledir. Girdiğiniz herhangi bir sayıda argümanı alırlar ve bunları documentation'da görebileceğiniz gibi middleware işlevleri olarak ele alırlar.