我在GAE node.js标准环境上的应用中使用没有store
值的express-session实现了会话机制。尽管它在localhost上没有问题,但无论如何在GAE node.js标准环境中配置cookie.maxAge
的情况下,会话似乎都已终止。这就是我所拥有的:
app.use(session({
cookie: {
maxAge: 31536000000, // 1 year
secure: true
},
secret: SECRET,
resave: true,
saveUninitialized: true
}));
我认为这是由于GAE无法持久存储而引起的,如果是这样,我应该添加store
选项。我寻找了最简单的方法,发现了内存缓存,但它是not yet available on GAE node.js standard。
store
选项的问题吗?store
的最简单方法是什么?答案 0 :(得分:4)
您是正确的,内存不会在App Engine标准环境中持久存在:到达同一实例的请求将能够重复使用内存,但是,您的应用程序可能会在许多实例上运行,并且这些实例都是短暂的。
GCP尚未在App Engine上提供来自Node.js的内存缓存解决方案。当前的建议是使用第三方解决方案,例如Redis Labs Memcache(请参阅tutorial)
一旦配置了Memcache实例,您就可以在快速会话中使用MemecachedStore
。参见this sample
另一种选择是使用Cloud Datastore存储会话。请参阅nodejs-datastore-session节点模块。我自己还没有尝试过。