【问题标题】:How to resolve Cannot GET /logout in NodeJS, MySQL如何解决 NodeJS、MySQL 中无法 GET /logout 的问题
【发布时间】:2021-06-25 03:06:46
【问题描述】:

我有一个问题,我无法解决注销功能。我参考了不同的网站和 youtube 教程,但我看到的只是关于 Mongo 的注销等。

在我的 “controllers”文件夹 >“auth.js” 中,我有一个用于注销会话的 sn-p 代码。基本上,它会清除存储的 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>

【问题讨论】:

  • 您似乎从模块中导出注销。然后,您尝试通过 req 访问 logOut(不同大小写)函数。您是否有一些中间件将导出的注销功能附加到 req.logOut?
  • 哦,我没有 req.logOut 功能。不过,我开始进步了,因为 Bijay Sharma 建议使用 GET(logout) 而不是 POST(logout)。

标签: javascript mysql node.js jwt ejs


【解决方案1】:

根据您的代码,Log Out 应该是 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() 函数

【讨论】:

  • "TypeError: req.logOut 不是函数。"结果就是这样,不好意思问一下,请问“req.logOut”函数在哪里可以放?
  • 导入注销功能。并使用 logout() 而不是 req.logOut()。我已经更新了答案中的代码 sn-p。请重新检查
  • "ReferenceError: logout is not defined" 我试图将代码 [下面] 导入 //LOG OUT, "router.post('/logout', authController.logout);"
  • 导出注销中间件,然后将其导入 user.js 更新您的 router.post('/logout', authController.logout);到 router.get('/logout', authController.logout); .如果问题仍然存在,请上传整个源代码。
  • 代码还是有问题,可以通过GitHub分享给大家。但它在一个私人存储库中,请问您在 GitHub 中的电子邮件/用户名吗?
猜你喜欢
  • 2015-07-17
  • 1970-01-01
  • 1970-01-01
  • 2011-07-20
  • 2021-05-22
  • 2021-01-23
  • 2020-09-02
  • 2022-01-25
  • 2019-04-08
相关资源
最近更新 更多