Hel*_*ope 9 session heroku redis node.js express-session
目前还不清楚在使用Redis Cloud和Heroku的情况下使用的正确配置参数是什么,并且无法在线找到正常运行的示例.
这是我目前的代码:
const express = require('express')
const session = require('express-session')
const RedisStore = require('connect-redis')(session);
...
const server = express()
server.use(bodyParser.json())
server.use(bodyParser.urlencoded({ extended: false }))
server.use(cookieParser())
server.use(session({
secret: token_secret,
// create new redis store.
store: new RedisStore({ url: 'redis://rediscloud:...@...redislabs.com:11111'}),
resave: true,
saveUninitialized: true
}));
Run Code Online (Sandbox Code Playgroud)
在Redis Cloud和Heroku作为会话存储(使用快速会话)的情况下,我是否应该重新保存并将unitialized设置为true或false?
另外,cookieParser是否影响会话并且需要在那里?或者它是独立的,只是解析来自客户端的cookie,与Redis的服务器端会话存储无关?此外,cookie解析器是否应该将秘密传递给函数?
最后,bodyParser应该在server.use(session)之前还是之后,urlencoded extended应该设置为true还是false?
正如开膛手杰克所说,让我们分部分来看……
目前尚不清楚在使用 Redis Cloud 和 Heroku 的情况下使用哪些正确的配置参数,并且在网上找不到有效的示例。
Heroku 上的 RedisCloud(Node Express 示例)@ GitHub
在 Redis Cloud 和 Heroku 作为会话存储(使用 Express-Session)的情况下,我应该将 resave 和 saveUnitialized 设置为 true 或 false 吗?
app.use(expressSession({resave: false, saveUninitialized: false}))减少会话存储被访问的次数。这有利于硬件资源和性能(通常最好将它们设置为 false)。
此外,cookieParser 是否会影响会话并需要存在?
不再是:express-session中间件,以前需要cookie-parser,(但当前版本express-session直接读取/写入cookie)。
最后,bodyParser 应该出现在 server.use(session) 之前还是之后
中间件body-parser解析传入 HTTP 请求的正文。填充req.body随后在您的路由和中间件中可用的属性。所以顺序不会影响行为。
urlencoded 扩展应该设置为 true 还是 false?
您需要的解析器取决于您的服务器必须处理的请求类型。
扩展:假和扩展:真的区别已经在这个答案中解释了。
| 归档时间: |
|
| 查看次数: |
376 次 |
| 最近记录: |