Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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
Javascript 连接Redis不保留数据_Javascript_Node.js_Redis_Connect - Fatal编程技术网

Javascript 连接Redis不保留数据

Javascript 连接Redis不保留数据,javascript,node.js,redis,connect,Javascript,Node.js,Redis,Connect,我正在使用Node.js中的一个示例,但很难让它正常工作。这是我的密码: var connect = require('connect'); var RedisStore = require('connect-redis')(connect); var app = connect(); app.use(connect.favicon()); app.use(connect.cookieParser('Cereal killin keybored kittty')); app.use(conne

我正在使用Node.js中的一个示例,但很难让它正常工作。这是我的密码:

var connect = require('connect');
var RedisStore = require('connect-redis')(connect);

var app = connect();
app.use(connect.favicon());
app.use(connect.cookieParser('Cereal killin keybored kittty'));
app.use(connect.session({
  store: new RedisStore({prefix: 'boom'})
}));
app.use(function (req, res, next) {
  console.log(req.session);
  if (req.session.views) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write('<p>views: ' + req.session.views  + '</p>');
    res.write('<p>expires in: ' + req.session.cookie.maxAge + '</p>');
    res.write('<p>httpOnly: ' + req.session.cookie.httpOnly + '</p>');
    res.write('<p>path: ' + req.session.cookie.path + '</p>');
    res.write('<p>domain: ' + req.session.cookie.domain + '</p>');
    res.write('<p>secure: ' + req.session.cookie.secure + '</p>');
    res.end();
    req.session.views += 1;
  } else {
    req.session.views += 1;
    res.end('Welcome to the session demo. Refresh the page.');
  }
}).listen(3000);
var connect=require('connect');
var redistore=require('connect-redis')(connect);
var-app=connect();
app.use(connect.favicon());
app.use(connect.cookieParser('score killin keybered kitty');
app.use(connect.session({
存储:新的RedisStore({prefix:'boom'})
}));
应用程序使用(功能(请求、恢复、下一步){
控制台日志(请求会话);
if(请求会话视图){
res.writeHead(200,{'Content-Type':'text/html'});
res.write(“视图:”+req.session.views+”

); res.write(“在“+req.session.cookie.maxAge+”

”中过期); res.write('httpOnly:'+req.session.cookie.httpOnly+'

'); res.write('path:'+req.session.cookie.path+'

'); res.write('domain:'+req.session.cookie.domain+'

'); res.write('secure:'+req.session.cookie.secure+'

'); res.end(); req.session.views+=1; }否则{ req.session.views+=1; res.end('欢迎来到会话演示。刷新页面'); } }).听(3000);

无论刷新多少次,req.session.views都保持为1。任何帮助都会震撼

更改会话后,请尝试显式保存会话:

  ...
  req.session.views += 1;
} else {
  req.session.views += 1;
  res.end('Welcome to the session demo. Refresh the page.');
}
req.session.save();
...

我认为唯一不需要显式的
save()
的存储是
MemoryStore
(刚刚检查了Node.js的示例代码,它也使用
MemoryStore
)。

你太棒了!非常感谢:)这对我不起作用,想和大家分享一下吗。。。3年后,你的配置是什么样子的?lol.@Phil这里有一个适合我的独立版本:(计数器可能看起来坏了,因为每次重新加载它可能会增加2个,但这是因为浏览器还请求一个不存在的
/favicon.ico
,计数器也会增加;我没有费心过滤掉它)