TypeError:无法读取属性' cookie'未定义的

时间:2015-12-07 20:55:10

标签: mongodb session cookies sails.js

在我的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/');
    });

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

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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