[英]I don't understand the syntax of the following javaScript code
else{
passport.authenticate("local")(req, res, function () {
res.redirect("/secrets");
});
}
為什么沒有“。” 在 authenticate("local") 之后(這里)和之前(req, res, function ().........)
passport.authenticate
返回 function。然后可以調用返回的 function(像任何函數一樣)- req
、 res
和另一個回調 function 是可以傳遞的 arguments。
如果您發現它難以閱讀,將返回的 function 分解成它自己的標識符可能更有意義。
const passportHandler = passport.authenticate("local");
passportHandler(req, res, function () {
res.redirect("/secrets");
});
通常,更好的方法是為路由本身聲明 Passport 中間件,而不是同時聲明路由回調,然后再次傳遞req
和res
。 那是
app.post(
'someEndpoint',
passport.authenticate("local"),
(req, res) => {
res.redirect("/secrets");
}
)
如果你能想出辦法繞過else
。 passport.authenticate
返回路由處理程序回調, (req, res) =>
也是路由處理程序回調。 .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.