gpt4 book ai didi

javascript - 除非包含在箭头函数中,否则方法不会返回正确

转载 作者:行者123 更新时间:2023-11-30 09:20:21 26 4
gpt4 key购买 nike

在我的 Node/Express API 中,为了保护我的路由,我是 passport.authenticate

app.get('/', passport.authenticate('jwt', { session: false}), (req, res) => { //whatever })

我在这些路由上有额外的中间件,它变得相当长,我不想在我的所有路由器文件中都需要通行证,所以在一个单独的文件中,我在一个名为 protect 的现有身份验证对象上创建了另一个方法

const auth = {
protect() {}
}

这允许我这样做

app.get('/', auth.protect, (req, res) => { //whatever })

最初我尝试返回 passport.authenticate

const auth = {
protect() {
return passport.authenticate('jwt', { session: false})
}
}

但这不起作用

然后我将它包裹在一个箭头函数中

const auth = {
protect() {
() => passport.authenticate('jwt', { session: false})
}
}

现在,当我在我的路线上调用 auth.protect 时,它工作得很好。

此外,如果我只是导出一个箭头函数

export const protect = () => {
return passport.authenticate('jwt', { session: false})
}

当我在我的路线上调用 protect 时,这也有效。

为什么我需要用我想要运行的代码返回一个箭头函数,为什么当我在我的路线上调用该函数时第一个带有返回的示例不起作用?

最佳答案

第一个例子似乎返回函数执行的结果,第二个返回一个函数。

关于javascript - 除非包含在箭头函数中,否则方法不会返回正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52196085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com