Class constructor MongoStore cannot be invoked without 'new' (Express-NodeJs)Backend
Mia Lopez
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@3From 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}),