2014-03-29 49 views
0

我正在通過關於使用Node.js包Passport(link)進行用戶身份驗證的優秀教程,並且遇到了一段代碼,我真的不知道不明白:app.get()在Node.js中使用Express的第三個參數

app.get('/profile', isLoggedIn, function(req, res) { 
    res.render('profile.ejs', { 
     user : req.user // get the user out of session and pass to template 
    }); 
}); 

我的問題是與isLoggedIn參數。我查看了官方網站,並進行了一些谷歌搜索,但是沒有任何地方說你可以將三個參數傳遞給app.get。我只見過兩次。這是什麼第三(可選,我假設)參數?

我不是在問關於isLoggedIn本身,而是關於它是我以前從未見過的第三個參數app.get()

回答

3

它被稱爲中間件,它在第三個參數(回調)之前被調用。

中間件功能示例:訪問檢查,在傳遞資源之前檢查用戶是否已登錄等。

+0

中間件參數期望的回報是什麼?任何值,或某個特定的值,如布爾或對象? –

+0

沒有預期的內置數據類型。您可以構建自己的中間件來返回對象,布爾,字符串等。中間件也不僅限於一箇中間件函數調用。您可以有多箇中間件調用。無論中間件返回什麼都可以被回調函數使用(第三個參數)。 – user3474926

相關問題