node.js - 如何在node js中使用express重定向后app.get

标签 node.js express redirect get

我是 Node js 的新手,这是我的问题。

我在app.js中设置了从登录页面登录后重定向的代码,如下所示,

app.post('/login', function(req, res, next) {
passport.authenticate('local-login', function(err, user, info) {
  if (err) { return next(err); }
  if (!user) { return res.redirect('/login'); }
  req.flash("email");
  var email_address = req.body.email;
  var username = email_address.substring(0, email_address.lastIndexOf("@"));
  global_username = username;
  return res.redirect('/status.html'+'?channel='+username);
  })(req, res, next);
});

现在我想使用 app.get 获取 '/status.html'+'?channel='+username

所以我创建了这样的代码,

app.get('/status.html?channel='+ global_username, isLoggedIn, function(req, res){
  console.log("Logged in");
  var chk_username = req.body.email;
  var temp = chk_username.substring(0, chk_username.lastIndexOf("@"));
  if(temp != global_username){return res.json({success: false, message:"Unauthorized Attempt"});}
});

但是,它没有通过 app.get 函数。我尝试使用 console.log 检查它是否已登录,但没有出现任何内容。

有人有办法解决这个问题吗?

谢谢。

最佳答案

好吧,首先,如果您使用 global_username 作为实际的全局变量,那么这不是一个好主意。这意味着每当有人登录时,每个人的值都会发生变化。我认为这不是您想要的。

此外,您的 route 根本不应该包含查询字符串内容;这通常不是路由的一部分,只是路径的一部分。坦率地说,我什至没有遵循您在该函数中尝试执行的操作,但您应该注意的另一件事是 get 请求中没有正文,因此即使您点击此中间件,您也不会从 req.body 获取一个值。

如果您想要做的只是重定向到某个 URL,然后访问当前用户,那么 Passport 会在 req 对象中为您设置该内容,因此您可以执行以下操作:

app.get('/status.html, isLoggedIn, function(req, res){
  console.log("Logged in");
  if (req.user) return res.send({message: 'Success'});
  return res.status(401).send({message: 'you are not logged in'});
});

关于node.js - 如何在node js中使用express重定向后app.get,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42336147/

相关文章:

node.js - 错误 : ENOENT: no such file or directory, scandir '.../node_modules/node-sass/vendor'

javascript - 如何在 ReactJS 中的事件上添加或删除类名?

jquery - 我的导航菜单有问题。我正在使用 Bootstrap 3、JQuery 2.3.1、Jade、ExpressJS 和 Node.js

java - 文件内容重定向到 args 不起作用

.htaccess - 301 将所有子页面重定向到首页

node.js - createreadstream 是异步的吗?

node.js - 安装 yarn 后 Npm 不工作(找不到 number-is-nan)

javascript - MEANJS TypeError : Route. all() 需要回调函数,但得到一个 [对象未定义]

javascript - Node.js Express 模块导出

php - 如何从 php 文件重定向到模态?