【问题标题】:TypeError: Cannot read property 'cookie' of undefinedTypeError:无法读取未定义的属性“cookie”
【发布时间】:2016-03-12 14:45:17
【问题描述】:

在我的 Sails.js 应用程序中调用我的 User.create 方法时,我收到以下错误:

/Users/user/code/bt/tgein/node_modules/mongodb-core/lib/topologies/server.js:779 catch(err) { process.nextTick(function() { throw err}); }

这是我的用户控制器的全部内容。

User.create(req.params.all(), function userCreated(err, user) {
        // var userid = user.id;
        // console.log(userid);

        if(err) {
            console.log(err);

            req.session.flash = {
                err: err.ValidationError
            }

            return res.redirect('/user/loginDetails');
        }
        var oldDateObj = new Date();
        var newDateObj = new Date(oldDateObj.getTime() + 60000);
        req.session.cookie.expires = newDateObj;
        req.session.authenticated = true;
        console.log(req.session);
        // res.redirect('/user/profileSelection/?id=' + user.id);

        // Saves user data into session variable
        req.session.user = user;



        res.redirect('/user/profileSelection/');
    });

显然,该请求的会话值未定义。这似乎是一些基本没有发生的症状,但我不知道那是什么。

【问题讨论】:

  • 我的评论可能对你有用,也可能没用。我并没有真正使用sails.js,但我遇到了类似的问题,但我将mongo与mongoose和node js一起使用。我的问题在那里,因为我正在查询的值在模式中不存在确切的格式。如果此评论有意义,请告诉我。
  • 啊。在这种情况下,我如何确保我拥有正确的架构或您的情况正在发生?

标签: mongodb session cookies sails.js


【解决方案1】:

req.session.cookie 未定义,您正在尝试将值设置为未定义的对象。

var oldDateObj = new Date();
var newDateObj = new Date(oldDateObj.getTime() + 60000);
if(!req.session.cookie)
    req.session.cookie = {};
req.session.cookie.expires = newDateObj;

【讨论】:

    【解决方案2】:

    我认为问题不在于会话,因为会话始终在 Sails 应用程序中保留/定义。当您尝试保存数据时,可能存在问题。

    【讨论】:

    • 啊。我想你是对的。但是,我该如何查看数据和模型级别发生的情况?
    【解决方案3】:

    问题是我的会话存储试图通过我的本地应用程序上的sessions.js 中的生产适配器,这导致req.session 失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      • 2019-08-19
      • 1970-01-01
      相关资源
      最近更新 更多