Class Constructor Mongostore Cannot Be Invoked Without 'New' (Express-Nodejs)Backend
I M Creating React-Auth. Firstly I Created Server Side. I Need to Connect Mongodb but I Didnt Manage. Const Session = Require('Express-Session') Const...
I m creating react-auth . Firstly I created server side. I need to connect mongodb but i didnt manage.
const session = require('express-session') const Mongostore = require('connect-mongo')(session)
``const cors = require('cors')
app.use(session({ secret: 'secret',
store: new Mongostore({ mongooseConnection: mongoose.connection
}), resave: true,
saveUninitialized: true }))
3 Answers
For those who want to the latest version of connect-mongo, the new syntax involves removing the parameter session from the require call and not using new any more but a method .create.
Here is what the documentation recommends:
const session = require('express-session');
const MongoStore = require('connect-mongo');
app.use(session({
secret: 'foo',
store: MongoStore.create(options)
}));
Basic usage would be:
app.use(session({
store: MongoStore.create({ mongoUrl: 'mongodb://localhost/test-app' })
}));
I had a similar issue while working on replit. My solution was to downgrade connect-mongo's version from 4 to 3.
npm uninstall connect-mongo
npm i connect-mongo@3
From this user's post:
const session=require("express-session");
const MongoStore=require("connect-mongo");
//*****************
app.use(session({
secret:"secret",
cookie:{maxAge:60000},
resave:false,
saveUninitialized:false,
store:MongoStore.create({mongoUrl:process.env.MONGO_URI}),