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 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}),
  

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Maya Lin-Takahashi

Maya Lin-Takahashi

Consumer Tech & Gadget Reviewer

Maya is a hardware enthusiast who tests and reviews smart home devices, smartphones, wearables, and audio gear. She focuses on practical consumer value and build quality.

Share this article
Twitter Facebook Pinterest