【发布时间】: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}`)
})
【问题讨论】:
-
如果 MongoStore 未定义,那么大概
require('connect-mongo')没有提供具有默认属性的对象...那么您检查它是什么了吗?
标签: javascript node.js mongodb