Connect Mongo показывает одну запись для сеанса пользователя
Что происходит:- Я использую Connect-Mongo для хранения пользовательской сессии. Насколько я прочитал, мы можем хранить многопользовательский сеанс в БД, пока сервер не перезапущен (?). У меня есть страница входа и всякий раз, когда пользователь входит в систему, я сохраняю адрес электронной почты в сеансе. Я вижу запись, созданную в mongodb. Сервер все еще работает и войдите в систему с другими учетными данными, используя вкладку инкогнито. Я вижу, что предыдущая запись удалена и заменена новым пользователем. Следовательно, в любой момент в базе данных есть только один недавно зарегистрированный пользователь.
Что я хочу:- Я хочу хранить сеансы для каждого пользователя, который вошел в систему. И когда один выход из системы, я проверяю адрес электронной почты запроса на выход из записи базы данных и удаляю этот сеанс. Итак, мой server.js содержит этот код:-
var cookieParser = require('cookie-parser');
var MongoStore = require('connect-mongo')(session);
app.use(cookieParser());
app.use(session({
cookie: { maxAge: 1000*60*2 } ,
secret: "session secret" ,
store:new MongoStore({
db: 'express',
host: '127.0.0.1',
port: 27017,
url:"mongodb://localhost:27017/db",
collection: 'session',
auto_reconnect:true,
resave: true,
saveUninitialized: true
})
}));
apiRoutes.post('/login', function(req, res) {
User.findOne({
email: req.body.email
}, function(err, user) {
if(!err)
req.session.email = req.body.email;
return res.json({ success: true ,message:"Session saved",status:200});
});
});
apiRoutes.post('/logout',function(req,res){
mongoose.connection.db.collection('sessions').find({session.email:req.body.email}, function(err, data) {
if(err){
console.log("Error");
}
else{
//delete entry
}
})
});