簡體   English   中英

我不明白以下 javaScript 代碼的語法

[英]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(像任何函數一樣)- reqres和另一個回調 function 是可以傳遞的 arguments。

如果您發現它難以閱讀,將返回的 function 分解成它自己的標識符可能更有意義。

const passportHandler = passport.authenticate("local");
passportHandler(req, res, function () {
  res.redirect("/secrets");
});

通常,更好的方法是為路由本身聲明 Passport 中間件,而不是同時聲明路由回調,然后再次傳遞reqres 那是

app.post(
  'someEndpoint',
  passport.authenticate("local"),
  (req, res) => {
    res.redirect("/secrets");
  }
)

如果你能想出辦法繞過else passport.authenticate返回路由處理程序回調, (req, res) => 也是路由處理程序回調。 .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM