NodeJS:我无法使express-connect连接到redis

这是我的代码:

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

这是我得到的错误:

  RedisStore.prototype.__proto__ = Store.prototype; ^ TypeError: Cannot read property 'prototype' of undefined at module.exports (/home/cherif/Bureau/Twimbee/server/gamma/node_modules/connect-redis/lib/connect-redis.js:96:41) at Object.<anonymous> (/home/cherif/Bureau/Twimbee/server/gamma/index.js:2:42) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:902:3 

请帮忙

看起来他们已经在他们的文档中解决了这个问题:

由于express 4.xx的变化,我们现在需要将express-session传递给函数connect-redis exports来扩展express.session.Store:

var session = require('express-session'),RedisStore = require('connect-redis')(session);

app.use(session({store:new RedisStore(options),secret:'keyboard cat'}))

https://github.com/visionmedia/connect-redis使&#x7528;

1)从node_modules中删除express

2)清理caching(npmcaching清理)

3)通过package.json(*)或npm install来安装最新版本

4)通过package.json或npm install安装connect-redis

5)使用:

,session = require('express-session'),RedisStore = require(“connect-redis”)(session);

还需要使用resave和saveUninitialized,否则会得到警告消息。

 app.use( session({ store: new RedisStore({ client : yourClient }), secret: 'yourSecretKey', resave: true, saveUninitialized: true }));