node.js - 如何为未使用 Express 登录的用户实现默认路由?

标签 node.js express

使用 Node.js 和 Express,我希望未登录的用户始终重定向到主页。实现这一目标的最简单方法是什么?理想情况下,我不必向每个路由添加代码来检查某人是否登录。

最佳答案

这取决于您如何定义“未登录”,但假设状态存储在 req.session 中。在这种情况下,您可以添加一个中间件,将未登录的用户重定向到登录页面:

app.use(function(req, res, next) {
  if (req.path === '/loginpage') // pass requests for login page
    next();
  else
  if (! req.session || req.session.isLoggedIn !== true) // check logged in status
    res.redirect('/loginpage'); // redirect to login page when not logged in
  else
    next(); // else just pass the request along
});

app.get('/loginpage', function(req, res) {
  res.send('login page');
});

关于node.js - 如何为未使用 Express 登录的用户实现默认路由?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15920269/

相关文章:

javascript - 如何从 NodeJS 中传入的 http 请求中手动提取上下文或跨度?

node.js - a href 在 Express 中丢失 Jade 中的相对目录

node.js - typescript express 中间件

javascript - JS 内部无法访问iron-router 数据

node.js - 队列与非阻塞 I/O

node.js - 具有多个 Node 的多人游戏服务器

c++ - Node 配置文件中的 ___mac_get_pid 符号是什么?

android - 如何在 android 或 ios 移动设备上运行 Nodejs 运行时

reactjs - Material UI 与 React 16 的兼容性为 0.2 倍

mysql - 使用 Express Node 进行多个 mysql 查询