node.js - 无法快速使用 Redis

标签 node.js express redis

我正在使用 Express 4.x。我在这里声明 Redis:

var app = require('express')()
, express = require('express')
, connect = require('connect')
, http = require('http').Server(app)
, path = require('path')
, request = require("request")
, io = require('socket.io')(http);


// Cookie and Session Reqs:
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var session = require('express-session');
var RedisStore = require('connect-redis')(session);
var sessionStore = new RedisStore();

然后我设置了我的 session :

app.use(session({
    secret: "xxxxx",
    store: sessionStore,    
    key: 'sid',
    cookie: {secure: false, maxAge: 600000},
}));

我在我的一个路由中使用我的 session 变量:

app.get('/public/', function(req, res) {
    req.session.sessionAccessCode = "not set yet";
    res.redirect("index.html");
});

当我删除 store: sessionStore 行时,没有任何问题,我可以测试 session 变量是否有效。但是如果我有它,我会得到一个错误:

TypeError:无法设置未定义的属性“sessionAccessCode”

知道为什么 Redis 不工作吗?

最佳答案

你需要先以某种方式启动redis。根据您安装 redis 的方式,如果您通过包安装,它可能就像启动 redis 服务一样简单。

关于node.js - 无法快速使用 Redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25609948/

相关文章:

javascript - Redis SCAN 没有给出 NodeJS 中的所有匹配项

node.js - npm下载phonegap多次报错

node.js - 未找到匹配项的 Mongoose 查询返回什么?

javascript - 正则表达式匹配字符串中的开始([)和结束(,)(仅)

javascript - 如何在express.js应用程序中注册异步中间件模块?

node.js - 从 Nodejs 中的文本字段获取输入数据

redis - Redis 重复订阅同一个 channel 名的效果

javascript - 使用 Bluebird Promise 修复 Node.js 中的范围/上下文错误

node.js - 使用BLoC模式的Flutter登录系统

java - Spring Boot 2 的 Redis 健康检查挂起