2015-12-07 5 views
1

При вызове мой User.create метод в моем приложении Sails.js, я получаю следующее сообщение об ошибке:TypeError: Не удается прочитать свойство 'куки' неопределенной

/Пользователи/пользователь/код/​​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/'); 
    }); 

Очевидно, что значение сеанса для запроса не определено. Это кажется симптомом чего-то основного, чего не происходит, но я не знаю, что это такое.

+1

Мой комментарий может быть или не быть полезным для вас. Я не использую sails.js, но у меня возникла аналогичная проблема, но я использую mongo с mongoose и js узла. Моя проблема была там, потому что значение, которое я запрашивал, не было в точном формате в схеме. Если этот комментарий имеет смысл, пожалуйста, дайте мне знать. –

+0

Ах. Как я могу убедиться, что у меня есть правильная схема или что ваша ситуация происходит в этом случае? – Thalatta

ответ

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

Я думаю, что проблема не в сеансе, поскольку сессия всегда сохраняется/определяется в приложении парусов. Возможно, проблема возникает, когда вы пытаетесь сохранить данные.

+0

Ах. Я думаю, вы правы. Однако, как мне узнать, что происходит на уровне данных и модели? – Thalatta

0

Проблема в том, что у меня был магазин сеансов, пытающийся пройти через производственный адаптер в моем sessions.js на моем локальном приложении, что вызвало ошибку req.session.

Смежные вопросы