【发布时间】: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