ms-dred
@ms-dred
Вечно что то не то и что то не так...

Для чего express-session хранит гостевые сессии и как можно игнорировать запись таких сессий?

Проблема в следующем.
Пользователи часто ругались на то что сессия слетала быстро, увеличил срок хранения сессии до 3 месяцев и база раздулась мама не горюй, к примеру только за один день пол миллиона документов в коллекции db.sessions
Конфиг обычный
app.use(session({
    secret: 'secret',
    cookie: { path: '/', httpOnly: !0, maxAge: 7776000000, secure: 0 },
    name: 'sid',
    store: sessionStore,
    saveUninitialized: 0,
    resave: 0
}))

И sessionStore
const mongoose 			= require('mongoose')
    , expressSession 	= require('express-session')
    , MongoStore 		= require('connect-mongo')(expressSession)

    , sessionStore = new MongoStore({
        mongooseConnection: mongoose.connection,
        autoRemove: 		'interval',
        autoRemoveInterval: 1
    })

module.exports = sessionStore


Не могу понять, для чего экспресс хранить сессию гостя/бота, в нее же ничего не пишется, она просто существует и никаких действий с ней не происходит, имею ввиду действительно нужных действий, или я ошибаюсь?
По факту для авторизации я использую проверку request.session.user, где гость это null, а пользователь объект с данными из коллекции users.
Я просто не вижу смысла делать многочисленные бесхозные инсерты в базу, для чего они там нужны? Понятно когда документ содержит ID, но там таких тысячи, а документов миллионы.

Хочется добиться того чтобы сессия хранилась в базе только пользователя, а гостевые сессии.... для чего они вообще нужны?
  • Вопрос задан
  • 661 просмотр
Пригласить эксперта
Ответы на вопрос 1
@RidgeA

а гостевые сессии.... для чего они вообще нужны

Гость может зайти на сайт, накидать товаров в корзину на 100500 миллионов и зарегаться/залогиниться перед заказом.
Не заставлять же его опять корзину собирать.
Ответ написан
Ваш ответ на вопрос

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

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