1

nodejitsu で Redis db を作成し、次のような完全な URI を取得しました。

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

Connect-redis にはホスト、ポートなどが必要です...この文字列を渡すだけの簡単な方法を知っている人はいますか? ホストをそのように設定すると機能しないように見えました-mongodbはこのスキーマで正常に機能するようです。

4

2 に答える 2

1

url.parse http://nodejs.org/docs/latest/api/url.htmlを使用して、その URL をホスト、ポートなどの部分に解析します。

于 2012-11-20T20:52:45.707 に答える
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})
}));
于 2012-11-21T18:33:59.150 に答える