我已经在 GAE node.js 标准环境中使用没有 store
值的 Express-Session 在我的应用程序中实现了 session 机制。尽管它在本地主机上运行没有问题,但无论在 GAE node.js 标准环境中如何配置 cookie.maxAge, session 似乎都会终止。这就是我所拥有的:
app.use(session({
cookie: {
maxAge: 31536000000, // 1 year
secure: true
},
secret: SECRET,
resave: true,
saveUninitialized: true
}));
我认为这是由 GAE 不持久内存引起的,如果是这样,我应该添加 store
选项。我寻找了一个最简单的选项并找到了 memcache,但它是 not yet available on GAE node.js standard .
- 这是应用没有
store
选项的问题吗? - 在 GAE Node.js 标准上拥有
商店
的最简单方法是什么? - 如何在此环境中使用 memcache?
最佳答案
您说得对,内存在 App Engine 标准环境中不是持久的:到达同一实例的请求将能够重复使用内存,但是,您的应用程序可能会在许多实例上运行,而这些实例无论如何都是短暂的。
GCP 尚未在 App Engine 上提供来自 Node.js 的内存缓存解决方案。当前建议是使用第三方解决方案,例如 Redis Labs Memcache(请参阅 tutorial)
配置 memcache 实例后,您应该能够为快速 session 使用 MemecachedStore
。请参阅this sample
另一种选择是使用 Cloud Datastore 来存储 session 。请参阅nodejs-datastore-session Node 模块。我自己没试过。
关于node.js - 在 AppEngine Node.js 标准环境中稳定快速 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52941411/