Javascript 在Express中从一条路线重定向到另一条路线

Javascript 在Express中从一条路线重定向到另一条路线,javascript,node.js,express,Javascript,Node.js,Express,我在nodejs有以下路线 下面是users.jsroute router.post('/users/login', function(request, response) { // let user login here and do all of the logic. // Once done then redirect user to dashboard in dashboard.js file response.redirect('/dashboard'); }

我在nodejs有以下路线

下面是
users.js
route

router.post('/users/login', function(request, response) {
    // let user login here and do all of the logic.

    // Once done then redirect user to dashboard in dashboard.js file
    response.redirect('/dashboard');
});
这里是dashboard.js路径

 router.get('/dashboard', function(request, response) {
     response.render('plans');
 });
现在,当我以用户身份登录时,当它试图重定向我时,它会显示以下内容

cannot get Cannot GET /users/dashboard
我希望用户重定向到
/dashboard/dashboard


在Express中,如何将用户从一条路线重定向到另一条路线?

我和你有同样的疑问,我来这里寻找答案,但没有找到答案,因此我不得不亲自在文档中挖掘解决方案,我找到了一个

现在来回答问题。使用res.redirect('/dashboard')是指向相对于当前路径(即用户/仪表板)的路径,如果您有单独的仪表板路径,则必须以以下方式使用: res.redirect('../dashboard/dashboard')

以下是我的项目预览,仅供参考:

以下是
user_home.js
route:

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.send("Hello User, welcome to user_home page");
});

router.get('/dashboard', function(req, res, next) {
  res.send("Hello User, this your personal dashboard");
});

module.exports = router;
这是我重定向的路线的代码:

else {
      console.log("Input validated!");
      res.redirect('../user_home/dashboard');  
}
p.S:这是我关于堆栈溢出的第一个答案,很高兴我能帮助别人解决问题。

res.redirect('auth/login');
我在一个名为“contributions”的路由中有一个,当它被重定向时,它被呈现为“contributions/auth/login”,这是错误的

我最需要的是localhost://port/auth/login.

我将ejs锚标记更改为“/auth/login”,它将从根目录获取url,以前是“auth/login”,它将url作为当前url+提供的url,在我的例子中是“contributions/auth/login”


希望这能有所帮助。

您可能需要更明确地进行路由重定向——它似乎仍保留在目录中(可能不是正确的工作,因为它是一条路由)
/users
。尝试
response.redirect('/dashboard/dashboard')如果不起作用,可能是相对的
会有帮助吗?他的重定向也应该起作用,因此“/path”应该是相对于根的,没有前导斜杠,它应该是相对于当前路径的@你能在浏览器中检查一下你的回复重定向标题吗?我觉得这不相关。