Стабилизация экспресс-сессии в стандартной среде AppEngine Node.js - PullRequest
0 голосов
/ 23 октября 2018

Я реализовал сессионный механизм в своем приложении в стандартной среде GAE node.js, используя express-session без значения store.Хотя это работает без проблем на локальном хосте, сессия, кажется, завершается независимо от того, как cookie.maxAge настроен в стандартной среде GAE node.js.Это то, что у меня есть:

app.use(session({
  cookie: {
    maxAge: 31536000000, // 1 year
    secure: true
  },
  secret: SECRET,
  resave: true,
  saveUninitialized: true
}));

Я предполагаю, что это вызвано тем, что GAE не сохраняет память, и если так, я должен добавить опцию store.Я искал самый простой вариант и нашел memcache, но он еще не доступен в стандарте GAE node.js .

  1. Это проблема, связанная с тем, что приложение не имеет опции store?
  2. Какой самый простой способ иметь store в стандарте GAE node.js?
  3. Как использовать memcache в этой среде?

1 Ответ

0 голосов
/ 23 октября 2018

Вы правы в том, что память не является постоянной в стандартной среде App Engine: запросы, поступающие в один и тот же экземпляр, смогут повторно использовать память, однако ваше приложение может работать во многих случаях, и они в любом случае эфемерны.

GCP еще не предлагает решение memcache из Node.js для App Engine.В настоящее время рекомендуется использовать стороннее решение, такое как Redis Labs Memcache (см. tutorial ). После того, как вы настроили экземпляр memcache, вы сможете использовать MemecachedStore для вашего экспресс-сеанса.См. этот пример

Другой альтернативой может быть использование Cloud Datastore для хранения сеансов.См. Модуль узла nodejs-datastore-session .Я сам не пробовал.

...