【问题标题】:MongoStore.create({ ..............Cannot read property 'create' of undefinedMongoStore.create({ ........无法读取未定义的属性“创建”
【发布时间】:2021-09-13 16:44:33
【问题描述】:

我已经尝试了我遇到的所有可能的步骤,但问题没有解决。错误显示:

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

【问题讨论】:

标签: javascript node.js mongodb


【解决方案1】:

您是否尝试过从 connect-mongo 导入中删除 default 属性? connect-mongo 库的 documentation 似乎在没有它的情况下导入了 MongoStore

// Your import
const MongoStore = require('connect-mongo').default

// Their import
const MongoStore = require('connect-mongo')

【讨论】:

  • 断言失败:您必须在选项 C:\Users\............\realtime-pizza\node_modules\connect-mongo\build 中提供 mongoUrl|clientPromise|client \main\lib\MongoStore.js:119 throw new Error('无法初始化客户端。请提供正确的选项'); ^ 错误:无法初始化客户端。请提供正确的选项
猜你喜欢
  • 1970-01-01
  • 2020-10-15
  • 2020-05-28
  • 1970-01-01
  • 1970-01-01
  • 2017-05-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多