NodeJS connect-redis与nodejitsu URI

时间:2012-11-20 20:46:58

标签: node.js redis

我在nodejitsu上创建了一个Redis数据库并获得了一个完整的URI,例如:

 nodejitsu:nodejitsudb11158161232.redis.irstack.com:f327c9sj29sj26e80b8e975fbebb4@nodejitsudb3058169sj32.redis.irstack.com

Connect-redis想要一个主机,端口等...任何人都知道一个简单的方法我可以把它传递给这个字符串?设置主机时似乎没有工作 - mongodb似乎可以正常使用此架构。

2 个答案:

答案 0 :(得分:1)

使用url.parse http://nodejs.org/docs/latest/api/url.html将该网址解析为主机,端口等部分....

答案 1 :(得分:0)

因此,在源代码中潜水它看起来无法解析dsn字符串。 url.parse没有返回必要的信息,因此必须进一步细分。

完整的dsn也有redis://协议 - 它必须在那里才能工作。因为我的本地redis dsn字符串没有密码/用户,所以如果它丢失则会检查:

var redisUrl = 'redis://nodejitsu:nodejitsudb3051531232.redis.irstack.com:fd470c971946e8der75fbebb4@nodejitsudb305813frt232.redis.irstack.com:6379';

var redis = url.parse(redisUrl);

app.use(express.session({
  secret: settings.sessionSecret,
  store: new RedisStore({host: redis.hostname, port: redis.port, pass: redis.auth ? redis.auth.substring(redis.auth.indexOf(':') + 1): null})
}));