He intentado todos los pasos posibles que he encontrado, pero el problema no se resuelve. El error muestra:
C:\Users\...............\server.js:35 store: MongoStore.create({ ^ TypeError: Cannot read property 'create' of undefined at Object.<anonymous> (C:\Users\..............\server.js:35:19) require('dotenv').config() const express = require('express') const app=express(); const ejs=require('ejs') const path = require('path') const expressLayout = require('express-ejs-layouts') const PORT =process.env.PORT || 3300 const mongoose= require('mongoose') const session = require('express-session') const flash = require('express-flash') const MongoStore=require('connect-mongo').default //Database connection const url='mongodb://localhost/pizza'; mongoose.connect(url, {useNewUrlParser:true, useUnifiedTopology:true}) .then(()=>{ console.log('Database connected...'); }).catch(error => { console.error('Connection failed...'); console.error(error.message); });//event listener //Session store // let mongoStore= MongoDbStore({ // mongooseConnection:mongoose.connection , // collection: 'sessions' // }) //Session Configuration //session cant work without cookies so we use secret key for encrypting the cookies app.use(session({ secret:process.env.COOKIE_SECRET, resave:false, store: MongoStore.create({ mongoUrl: process.env.MONGO_URI }), saveUninitialized:false, cookie:{maxAge:1000*60*60*24} // time in milliseconds-equivallent to 24 hours })); app.use(flash()); //Assets app.use(express.static('public')) //set template engine app.use(expressLayout) app.set('views',path.join(__dirname,'/resources/views')) app.set('view engine','ejs') require('./routes/web')(app) app.listen(PORT , ()=>{ console.log(`Listening on port ${PORT}`) })¿Ha intentado eliminar la propiedad default de su importación connect-mongo ? La documentación de la biblioteca connect-mongo parece importar MongoStore sin ella.
// Your import const MongoStore = require('connect-mongo').default // Their import const MongoStore = require('connect-mongo') //Change your connection as below to fix //'You must provide either mongoUrl|clientPromise|client in options' error app.use( session({ store: MongoStore.create({ mongoUrl: process.env.MONGO_URI }), ...options }) );