Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在使用redis connect,但正在node.js服务器重新启动时丢弃会话_Node.js_Express - Fatal编程技术网

正在使用redis connect,但正在node.js服务器重新启动时丢弃会话

正在使用redis connect,但正在node.js服务器重新启动时丢弃会话,node.js,express,Node.js,Express,我正在使用redis作为基于express的node.js项目中的会话存储。会话通常工作正常,但当我重新启动应用服务器时,我发现我的所有会话都丢失了(即,所有用户都被重定向到主页) 我可以看到,通过使用redis管理工具,在redis中仍然可以访问会话密钥 有什么想法吗 我的服务器设置如下所示 var redisSessionStore = require('connect-redis')(express); global.sessionStore = new redisSessionStore

我正在使用redis作为基于express的node.js项目中的会话存储。会话通常工作正常,但当我重新启动应用服务器时,我发现我的所有会话都丢失了(即,所有用户都被重定向到主页)

我可以看到,通过使用redis管理工具,在redis中仍然可以访问会话密钥

有什么想法吗

我的服务器设置如下所示

var redisSessionStore = require('connect-redis')(express);
global.sessionStore = new redisSessionStore({prefix:"sess:"});
app.configure(function(){
    app.use(express.cookieParser());
    app.use(express.session({ secret: sessionSecret, store: global.sessionStore, key: global.sessionCookieName, cookie: { secure: true, httpOnly: true, domain: "." + global.canonical, expires: false} }));
})
app.configure('development', function () { app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); });
app.configure('production', function () { app.use(express.errorHandler()); });

回答者@robertklep


问题是由每次重新启动时sessionSecret都在更改引起的。

服务器启动时您没有重新生成sessionSecret吗?是的,我是。谢谢罗伯特克莱普。更让人恼火的是,我昨天在发帖前就去寻找这样的东西,显然对此视而不见。