未捕获(在承诺中)类型错误:无法在注销会话 NodeJS 上读取未定义(读取"会话")的属性



我在Nodejs服务器中有这个router.delete来注销,所以req.session进入完整状态,然后成功销毁。问题是当我使用res.send((发送会话或消息时,它不起作用:

router.delete('/logout', async(req,res) => {
console.log(req.session)
req.session.destroy()
res.send({ session: req.session });
console.log(req.session)
res.end()
});

我试着在react前端显示来自路由器的数据,就像这样,它告诉我标题中写的错误:

const LogoutSession = async(e) =>{
e.preventDefault();
const response = await fetch(`http://localhost:3001/logout`, {
method:"DELETE",
})
console.log(response.data.session)     
}

我找到了解决方案,我使用.json方法以这种方式将数据发送到前端:

router.delete('/logout', async(req,res) => {
try {
console.log(sess)
sess = null
console.log(sess)
res.status(200).json({code: 200, message: 'loggedout', session1: 
sess})
} catch (err) {
console.log(err)
}
res.end()
});

然后我在前端使用了它:

const LogoutSession = async(e) =>{
e.preventDefault();
const response = await fetch(`http://localhost:3001/logout`, {
method:"DELETE",
})
const data = await response.json();
if(data.session1 === null){
history.push('/')
}
}

相关内容

最新更新