javascript - 如何解决 NodeJS、MySQL 中无法 GET /logout 的问题
问题描述
我有一个问题,我无法解决注销功能。我参考了不同的网站和 youtube 教程,但我看到的只是关于 Mongo 的注销等。
在我的"controllers" 文件夹 > "auth.js"中,我有一个注销会话的代码段。基本上,它会清除存储的 cookie。我的注册和登录功能有效。另一方面,注销很困难。
//Logout Session for USER
exports.logout = (req,res) => {
res.clearCookie('jwt');
res.redirect('shop/login');
};
在我的"routes" 文件夹 > "user.js"中,我有这个注销代码。
router.get('/profile', (req, res) => {
if (req.session.login) {
res.render('shop/profile');
} else {
res.send('Please login to view this page!');
}
res.end();
});
//LOG OUT
router.post('/logout',(req, res)=>{
req.logOut();
res.redirect("shop/login");
});
最后,在"views" 文件夹 > "profile.ejs"中,我有这段代码。
<div class="container">
<div class="row">
<div class="col-sm-8 mt-5">
<p class="headline2">Welcome!</p>
<h1><a href="/logout">Log out</a></h1>
</div>
</div>
</div>
解决方案
根据您的代码,注销应该是 GET 请求而不是 POST。
请更新“routes”>“文件夹”>“user.js”如下:
router.get('/profile', (req, res) => {
if (req.session.login) {
res.render('shop/profile');
} else {
res.send('Please login to view this page!');
}
res.end();
});
//LOG OUT
router.get('/logout', authController.logout);
请确保您已导入 logout() 函数
推荐阅读
- javascript - 为什么上传者的结果是错误的,但从不进入 requestPromise 中的 .catch
- python - 在python中结合三个不同的列表
- qt - 无法在发布模式下编译的 ide 之外运行 qt-creator 可执行文件
- dygraphs - 根据另一组的值更改 Dygraph 中的色点
- java - 有没有办法在 Java 中将两种类型指定为函数 arg 类型?
- fortran - 选择类型构造中的关联名称是否由 OpenMP 自动私有化?
- ssis - 从 ssis 中的外部配置文件设置变量
- python - 使用 Selenium Python 从 Google Play 商店中提取特定应用程序的评论
- python - 从网页中抓取表格数据
- arrays - 将结果从 cat 输出到具有指定到数组中的名称的不同文件中