2016-06-01 2 views
0

Я использую модуль узла connect-mongo для хранения данных сеанса в mongodb.Как настроить connect-mongo

Ниже приведен код, связанный с настройкой подключения-Монго

const cookieParser = require('cookie-parser'); 
app.use(cookieParser()); 
const session = require('express-session'); 
const mongoStore = require('connect-mongo')(session); 

app.use(session({ 
secret: "test", 
store: new mongoStore({ 
    url: mongodbURL, 
    collection : 'sessions', 
    autoRemove: 'interval', 
    autoRemoveInterval: 1 // In minutes. Default 
} 
})); 

После того, как пользователь подключается к корню «/» URL из браузера, запись становится вставлено в базе данных

{ 
"_id": "EZ2sy6jHvnrlsyofqCrKVfPtp6hv5FX_", 
"session": "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"name\":\"mongosession\"}", 
"expires": ISODate("2016-06-14T15:19:15.548Z") 
} 

Моих вопросы:

  1. Почему это оригиналMaxAge, срок действия ключей «session» - null и , что необходимо изменить, чтобы эти ключи имели значение.?

  2. Поскольку я поставил autoRemoveInterval 1 мин, я предполагал, что сеанс значения из базы данных будут удалены в течение 1 мин, но это было не так Что нужно изменить, чтобы достичь этого?

ответ

0
  1. Настройка cookie свойство connect-session. По умолчанию maxAge: null, что делает cookie a (browser-) session cookie.
  2. Задайте ttl объект connect-mongo, по умолчанию 14 дней (что выглядит правильно, судя по отметке времени в объекте expires). autoRemoveInterval определяет только, как часто connect-mongo должен проверить, есть ли какие-либо сеансы, срок действия которых истекает.
+0

Спасибо за ваш ответ. Теперь я добавил ttl: 60 key/value, и поскольку autoRemoveInterval равен 1, я ожидал, что если данный сеанс простаивает более 1 минуты, запись сеанса в базе данных будет удалена, но записи не будут удалены , – refactor

+0

@CleanCrispCode, что показывает свойство 'expires' этих документов? – robertklep

+0

{ { \t "_id": "1234", \t "session": "{\" cookie \ ": {\" originalMaxAge \ ": null, \" expires \ ": null, \" secure \ ": false , \ "httpOnly \": true, \ "path \": \ "/ \"}, \ "name \": \ "mongosession \"} ", \t" expires ": ISODate (" 2016-06-01T08 : 25: 20.981Z ") } – refactor

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