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

时间:2017-02-03 23:58:18

标签: javascript node.js express

我在nodejs中有以下路线

这里是[[ -s $f ]]路线

test -s "$f"

这里是dashboard.js route

users.js

现在,当我尝试重定向时,我以用户身份登录时,会说下面的内容。

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');
});

我希望用户'重定向到 router.get('/dashboard', function(request, response) { response.render('plans'); });

如何在Express中将用户从一个路由重定向到另一个路由?

2 个答案:

答案 0 :(得分:21)

我有同样的疑问,我来到这里寻找答案但没有找到,所以我不得不自己在文档中挖掘解决方案,我找到了一个。

现在回答答案。使用 res.redirect(' /仪表板')进入相对于当前路线的路径,即用户/仪表板,如果您有一个单独的仪表板路线,那么您&# 39;我必须这样使用它: 的 res.redirect(' ../仪表板/仪表板&#39)

这里仅供参考,是我项目的预览:

routes folder

这里是user_home.js路线:

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:这是我关于堆栈溢出的第一个答案,很高兴能帮助别人。

答案 1 :(得分:-1)

res.redirect('auth/login');

我在我的一条名为“贡献”的路由中遇到了这个问题,当它被重定向时,它被呈现为“贡献/身份验证/登录”,这是错误的。

我需要的主要东西是'localhost:// port / auth / login。

我将我的ejs锚标记更改为'/ auth / login',它将从根获取url,以前是'auth / login',将url作为当前url +提供的url,即'contributions / auth /登录”。

希望这会有所帮助。