Что я делаю не так?

Рейтинг: 0Ответов: 1Опубликовано: 28.04.2015

Есть вот такая функция -

function getauth(account_id,session,callback){
   make_key(account_id,function(err,result){
    if(result!=null){
        session.auth_key=result.toString('hex');
        session.account_id=account_id;

        findclient({name:account_id},function(err,result){
            if(err!=null){
                console.log(err);
            }else{
                console.log('Findlcient on getauth: sid='+result.accounts[0].sid+',token='+result.accounts[0].auth_token);
                session.account_sid=result.accounts[0].sid;
                session.account_token=result.accounts[0].auth_token;
                console.log(session);
            }
        });

        callback(null,session.auth_key);
    }else{
        callback(err,null);
    }
});       }

В результате её выполнения почему-то console.log(session) отдает всё как надо:

{ cookie: 
   { path: '/',
     _expires: null,
     originalMaxAge: null,
     httpOnly: true },
  auth_key: 'c684c0bf8139fc3903ffcdb7b25180544f8f408a79aceeb4952d315a49627b80',
  account_id: 'ss',
  account_sid: 'ACba7f95311673301adf8203bda6ebd01f',
  account_token: '860c23f6afdb7e05163fe0374a94c55c' }

но в Mongo я вижу только это -

{ cookie: {"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},
"auth_key":"c684c0bf8139fc3903ffcdb7b25180544f8f408a79aceeb4952d315a49627b80",
"account_id":"ss"
}

Как мне всё же заставить записаться недостающие два поля?

PS: модули:

var express = require('express');
var session = require('express-session');
var MongoStore = require('connect-mongo')(session);

Ответы

▲ 1Принят

По какой-то причине express-session не замечает изменения объекта session. Попробуйте принудительное сохранение session.save().