用RedisStore解决session的问题
http://stackoverflow.com/questions/23249504/cant-use-connect-redis-in-express-js
//create express app var http = require('http'); var express = require('express'); var app = express(); //add express-session var session = require('express-session'); var RedisStore = require('connect-redis')(express); app.use(session({ store: new RedisStore({ host: "redis://redistogo:e34d3***********************f4bb@albacore.redistogo.com:10072/" }) })); //routing var router1 = require('./router/router1')(app); var router2 = require('./router/router2')(app); //Deploying server http.createServer(app).listen(3000, function () { console.log('Deployed!!'); });
报出了这样的错误
/home/luis/www/express2/node_modules/connect-redis/lib/connect-redis.js:96 RedisStore.prototype.__proto__ = Store.prototype; ^ TypeError: Cannot read property 'prototype' of undefined at module.exports (/home/luis/www/express2/node_modules/connect-redis/lib/connect-redis.js:96:41) at Object.<anonymous> (/home/luis/www/express2/app.js:18: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
网络上大神的解答:
This:
var RedisStore = require('connect-redis')(express);
should be:
var RedisStore = require('connect-redis')(session);
Also remember to install express-session:
npm install express-session --save
If you plan to use Express 3.x, pick compatible version 1.4.7 of connect-redis to avoid the error.
npm install connect-redis@1.4.7 --save