I am trying to reuse the database object.The session intialization is working fine outside the Mongoconnect callback. But when I move it inside the call back , the session cookie is not being set in the browser . Any ideas??
var express=require('express');
var bodyParser=require('body-parser');
var cookieParser=require('cookie-parser');
var session=require('express-session');
var mongodb=require('mongodb'),
MongoClient = mongodb.MongoClient;
var MongoStore = require('connect-mongo')(session);
var util=require('util');
var assert=require('assert');
var db;
var app=express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
app.use(cookieParser());
MongoClient.connect('mongodb://localhost:27017/mydb',function(err,database){
if(!err)
{
app.use(session(
{ name:'sessionCookie',secret:'secret',saveUninitialized:true,resave:true ,
store: new MongoStore({ db:database })
}
));
app.listen(3000);
}
});
This seems to be a timing issue between the time the app object is intialized aand the session is intilaized. I chnaged the code a bit and the issue seems to be fixed. I am not entirely sure about the root cause. Feel free to chip in
var express=require('express');
var bodyParser=require('body-parser');
var cookieParser=require('cookie-parser');
var session=require('express-session');
var mongodb=require('mongodb'),
MongoClient = mongodb.MongoClient;
var MongoStore = require('connect-mongo')(session);
var util=require('util');
var assert=require('assert');
var db;
var app;
MongoClient.connect('mongodb://localhost:27017/mydb',function(err,database){
if(!err)
{
app=express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
app.use(cookieParser());
app.use(session(
{ name:'sessionCookie',secret:'secret',saveUninitialized:true,resave:true ,
store: new MongoStore({ db:database })
}
));
app.listen(3000);
}
});