Проблема получения сессии в nodejs из mongodb?

Создается сессия с помощью модуля express-session. В качестве хранилища использую mongodb.
В базе появляется вот такая запись
3cd35803ae17430ea321284740c145fb.PNG
Т.е. создалась сессия с id PmIBbN8NWAaxBUEW8J6ban4P. Тут все хорошо. Потом устанавливается соединение по websocket с помощью модуля ws между клиентом и сервером, но перед установкой соединения надо проверить, что у юзера есть сессия и что он зарегистрирован. Тут появляется проблемы. Не могу получить содержимое сессии по id.
Для работы с mongodb использую mongoose
Создал такую модель:
var Schema = mongoose.Schema;

var schema = new Schema({
    session:{
        type: String
    },
    expires:{
        type: Date
    }
});

exports.Session = mongoose.model('Session', schema);


Но при выполнение такого запроса ничего не находит
Session.findById("PmIBbN8NWAaxBUEW8J6ban4P", function(err, session){
      ...
})

В чем проблема?
  • Вопрос задан
  • 2702 просмотра
Решения вопроса 1
super-developer
@super-developer Автор вопроса
Проблема решилась изменением модели Session
var Schema = mongoose.Schema;

var schema = new Schema({
    _id:{
        type: String
    },
    session:{
        type: String
    },
    expires:{
        type: Date
    }
});

exports.Session = mongoose.model('Session', schema);

Поле _id надо тоже описывать.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы