Подключение к существующему подключению Mon goose через MongoStore - Ошибка: TypeError: невозможно прочитать свойство «Store» неопределенного значения - PullRequest
1 голос
/ 30 мая 2020

Я пытаюсь сохранить свои express -сессии на cloud.mongodb через существующее соединение с mon goose. Проблема в том, что когда я передаю mongoose.connection в качестве параметра подключения к new MongoStore({mongooseConnection:mongoose.connection}), я получаю следующую ошибку:

  const Store = connect.Store || connect.session.Store
                                                 ^

TypeError: Cannot read property 'Store' of undefined

Я видел возможные решения, но похоже, что у всех такая же конфигурация, как у меня, и до сих пор работает. Мне было интересно, если тот факт, что соединение с базой данных происходит медленнее, чем локальное, и, возможно, сначала достигает new Mongostore(), чем установление соединения.

Вот некоторые из моего кода для справки.

mongoose.connect(`mongodb+srv://${process.env.MONGO_USERNAME}:${process.env.MONGO_PASSWORD}@cluster0-kdrae.mongodb.net/${process.env.MONGO_DATABASE}?retryWrites=true&w=majority`,{useNewUrlParser:true,useUnifiedTopology:true});

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));


app.use(expressSession({
  secret:process.env.EXPRESS_SESSION_SECRET,
  store: new MongoStore({///Here I get the suggestion from the IDE
    mongooseConnection:mongoose.connection
  }),
  resave:false,
  saveUninitialized:true,
  secure:true
}));
app.use(passport.initialize(undefined));
app.use(passport.session(undefined));
app.use(flash());

Я также получил предложение от IDE, которое я выделил в коде, который гласит: Argument type {mongooseConnection} is not assignable to parameter type (options?: session.SessionOptions) => express.RequestHandler

1 Ответ

0 голосов
/ 30 мая 2020

Копая дальше, я вижу, что я забыл установить express -session на требовании, как это var MongoStore = require('connect-mongo')(expressSession);

ref. Express сеанс mongodb не сохраняется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...