我现在通过vercel部署了我的MERN web应用程序。不幸的是,我遇到了上面的错误,而实际上我的localhost并不存在。其中,精确定位到这段代码的.then(data =>
行:
useEffect(() => {
fetch(`${process.env.API_URL}/users/profile`, {
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${localStorage.getItem('token')}`
}
})
.then(res => res.json())
// console.log(res.status) added this just to check if it returns 200 and it is
.then(data => {
console.log(data)
if(typeof data._id !== "undefined") {
setUser({
id: data._id,
isAdmin: data.isAdmin
})
} else {
setUser({
id: null,
isAdmin: null
})
}
})
}, [])
我通过Postman检查了我的API,它返回为
{
"auth": "failed"
}
这也是与console.log()相同的输出。但这实际上是预期的输出,因为错误是在我的App.js上发生的,而且还不需要登录。我只是不知道为什么它没有作为JSON返回,我也尝试将其作为false返回,但仍然返回auth错误。
更多参考,这是我的API路由和控制器
router.get("/profile", auth.verify, (req, res) => {
const userData = auth.decode(req.headers.authorization)
if(userData){
userController.getProfile({id: userData.id}).then(result=> res.send(result))
} else {
res.send(false)
}
});
module.exports.getProfile = (reqBody) => {
return User.findById(reqBody.id).then((result, error) => {
if(error){
return false
} else {
if(result == null){
return false
} else {
result.password = "************"
return result
}
}
})
};
这是我唯一需要解决的错误,以使我的Web应用程序正常工作。我希望你能帮助我。非常感谢!
1条答案
按热度按时间lpwwtiir1#
所以,我已经解决了自己的问题,并成功地通过Vercel部署了我的Web应用程序。
我检查了我的Vercel应用程序,并尝试了登录和注册等其他功能。结果发现我的API URL是
undefined
。因此,我推测在部署过程中设置环境变量时没有单击添加按钮。由于我不知道如何删除预先存在的已部署应用程序,因此我使用新存储库创建了一个新部署。现在,在输入环境变量及其URL后,请确保单击“添加”按钮,然后单击“部署”按钮。