gpt4 book ai didi

javascript - Node.js 如何获取上一个 url

转载 作者:行者123 更新时间:2023-11-28 11:00:20 25 4
gpt4 key购买 nike

我想获取以前的网址,例如在所有我的/admin路由中,我打开一个表单,管理员需要在其中重新输入密码才能重定向到他请求的路线,但问题是在我验证他的密码后,我尝试将他重定向到他最初请求的路线,我不再有这条路线,它丢失了。例如,admin请求/admin/register,会出现一个表单,发布到validate-password,然后如果发现密码匹配(输入正确的密码),它应该将用户重定向到该路由他曾经请求过,但我不知道如何获取他请求的初始路线

router.all('/admin/*', isAdmin, (req, res, next) => {
res.render('validatePassword', {message: 'Please re-enter your password to get access to ' + req.originalUrl});
// next();
});

router.get('/admin/register', (req, res) => {
res.render('register', {message: req.flash('message'), role_id: req.user.role_id})
});


// Validate password, admin re-enter password to get access to /admin routes
router.post('/validate-password', async (req, res, next) => {
const password = req.body.password;
const match = await passwordController.comparePassword(password, req.user.password);
console.log(password);
if (match) {
// return res.redirect('/' +); HOW DO I REDIRECT HERE
return next();
} else {
// return res.render('changePassword', {role_id: req.user.role_id});
return res.render('validatePassword', {message: 'Wrong password'});
}
});

最佳答案

这里:

router.all('/admin/*', isAdmin, (req, res, next) => {
res.render('validatePassword', {message: 'Please re-enter your password to get access to ' + req.originalUrl});
// next();
});

当您渲染此页面时,您可以像使用 message 一样将原始路由附加为本地路由吗?您应该能够添加 req.originalUrl 并将其传递给 validatePassword。然后,当该页面调用 POST 来验证密码时,您将重定向 URL 作为正文的一部分传递给该页面。

关于javascript - Node.js 如何获取上一个 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61022884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com