快递会话不会持久 [英] Express session not persisting

查看:76
本文介绍了快递会话不会持久的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在节点中设置基本会话系统。这是我到目前为止所做的:

I'm trying to set up a basic session system in node. Here's what I've got so far:

app.js:

app.use(express.cookieParser('stackoverflow'));
app.use(express.session());

我在ajax.js中设置会话数据:

I'm setting the session data in ajax.js:

addClassToCart: function(req, res) {
  req.session.cart = req.body.classId;
  console.log(req.session.cart);
}

这会记录正确的信息。但是,当我尝试在其他地方检索该信息时(相同的文件,不同的功能):

This logs the correct information. However, when I try to retrieve that information elsewhere (same file, different function):

console.log(req.session.cart);

我得到未定义。我觉得我错过了一些非常基本的东西。各种各样的教程要么太糟糕要么要求我添加更多的包(我正试图避免)。

I get undefined. I feel like I'm missing something incredibly basic. Various tutorials for this are either awful or require me to add in even more packages (something I'm trying to avoid).

我调试的更多数据:


  • 这适用于非AJAX请求

  • 会话在记录之前设置。

推荐答案

事实证明,问题不在于Express会话(因为其他答案似乎在想)。相反,这是我的误解。我将 addClassToCart 更改为以下内容:

As it turns out, the issue wasn't with Express' session (as the other answers seem to think). Rather, it was a misunderstanding on my part. I changed addClassToCart to the following:

addClassToCart: function(req, res) {
    req.session.cart = req.body.classId;
    console.log(req.session.cart);
    res.send('class added');
  }

添加 res.send()解决了问题。

这篇关于快递会话不会持久的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆