【问题标题】:Sessions in Node.jsNode.js 中的会话
【发布时间】:2014-01-10 15:11:47
【问题描述】:

我是 Node.js 的新手,我似乎找不到存储会话的方法,或者至少不是官方的方法。

我读到你可以用 Redis 做到这一点

现在我不知道使用哪种方法...我来自 PHP 背景,很容易做到这一点。

我宁愿不再安装任何模块。我目前使用的是Express.js,请问有Express.js 的会话处理程序的详细指南吗?

【问题讨论】:

  • 使用express.cookieSession()。看看这个:expressjs.com/api.html
  • 文档有点欠缺,有没有更详细的?
  • 这个怎么样:blog.modulus.io/nodejs-and-express-sessions 如果你谷歌“node.js express session”,你会得到很多有用的信息。
  • 谢谢,它似乎有效,提交它作为答案,我会接受它!

标签: node.js session-cookies


【解决方案1】:

首先,您需要使用正确的中间件或在设置 Express.js 应用程序时包含它。

app.use(express.cookieParser());
app.use(express.session({secret: 'this is the secret'}));

express --sessions myapp

cookieParsersessions 中间件也是必需的;顺序很重要。

包含所需的中间件后,会向每个请求添加一个会话对象,您可以设置和获取该对象的属性。

设置:

app.get('/', function(req, res) {
  req.session.user = 'mike';
  res.send('index');
});

获取:

app.get('/about', function(req, res) {
  var user = req.session.user;
  res.send("I know you, you're" + user + '!');
});

【讨论】:

  • 能解释一下secret属性吗?
  • 这是一个附加的安全层,根据this,它是用来“计算哈希”的。
  • 所以,如果我没有秘密,它不会工作吗?我不太了解它的作用有什么意义,那个链接说它会保护它。
  • 我在该链接中读到了一条评论,说秘密只是哈希的盐,所以我认为不是必需的,但很高兴拥有!
  • 没有秘密就不行。 express 会报错。evidence
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-18
  • 2012-02-08
  • 2012-01-27
  • 1970-01-01
  • 2013-04-16
  • 2012-03-08
  • 2012-02-09
相关资源
最近更新 更多