【问题标题】:I am getting the error "auth is not a function" when calling my auth function in a route在路由中调用我的身份验证函数时出现错误“身份验证不是函数”
【发布时间】:2020-06-06 01:28:23
【问题描述】:

我有这个经过身份验证的函数,只要用户从后端请求敏感信息,我就想调用它。我的问题是每次我调用这个函数时它都不会运行。 这是我的身份验证功能。

const auth = (req,res,next)=>{

    try{
        // First get the token.
        const token = req.header("token")
        const verified = jwt.verify(token,process.env.JWT_TOKEN);
        console.log(verified)
        if(!verified){
            return res.status(401).json({
                error : "Token verification failed, auth denied"
            })
        }
        // Add a user to the request, the token will have a id object.
        req.user = verified.id;
        next();
    } catch(err){
        return res.status(400).status({
            error : "something went wrong"
        })
    }
}

这就是我要称呼它的地方。

const getUserInfo = (req,res)=>{
    db.User.findById(req.user,(error,foundUser)=>{
        if(error) return console.log(error);
        res.json({
            status: 200,
            data: foundUser,
            requestedAt: new Date().toLocaleString()
        });
    });
}

我尝试在 getUserInfo 函数中运行它,但它不起作用。我还尝试将它作为参数传递给 getuserinfo 函数,但它也不起作用。 我的路线设置为 router.get("/user",ctrl.getUserInfo)

【问题讨论】:

  • 您能否详细说明当您尝试在 getUserInfo 函数中调用它时出现的错误?
  • @Rodentman87 嘿,所以我的问题是我将身份验证文件中的一个对象导出为module.exports = { auth },这给了我auth is not a function error。但是当我将其更改为 module.exports = auth.它奏效了

标签: javascript node.js reactjs express model-view-controller


【解决方案1】:

你需要在 router.get("/user",ctrl.getUserInfo) 中添加 auth 函数作为第二个参数,因为它是一个中间件。如果您想了解更多信息,可以阅读https://expressjs.com/en/guide/using-middleware.html

router.get("/user", auth ,ctrl.getUserInfo)

【讨论】:

  • 我没有尝试你的方法,但我的问题是我将身份验证文件中的一个对象导出为module.exports = { auth },这给了我身份验证不是函数错误。但是当我将其更改为 module.exports = auth.成功了
  • @Adil Khan ..您的问题似乎已经解决了..如果答案有效,请欣赏它:)
【解决方案2】:

我的错误源于在 auth 文件中导出对象而不是函数。 module.exports = { auth } 给了我身份验证不是函数错误。但是当我把它改成module.exports = auth。成功了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-27
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多