我在nodejitsu上创建了一个Redis数据库并获得了一个完整的URI,例如:
nodejitsu:nodejitsudb11158161232.redis.irstack.com:f327c9sj29sj26e80b8e975fbebb4@nodejitsudb3058169sj32.redis.irstack.com
Connect-redis想要一个主机,端口等...任何人都知道一个简单的方法我可以把它传递给这个字符串?设置主机时似乎没有工作 - mongodb似乎可以正常使用此架构。
答案 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})
}));