出会ったエラー
Docker Compose使わないとできるのに、使うとこんなエラーが出ました。
Error: connect ECONNREFUSED 127.0.0.1:6379
TL;DR
docker-compose.yml
とapp.js
はこんな感じにする
docker-compose.yml
version: '3'
services:
express:
build: .
volumes:
- .:/app
tty: true
ports:
- 3000:3000
environment:
- NODE_ENV=development
- PORT=3000
- SESSION_SECRET=hogehoge
- REDIS_HOST=redis_db
- REDIS_PORT=6379
depends_on:
- redis_db
redis_db:
image: redis:latest
ports:
- 6379:6379
app.js
var session = require('express-session');
var RedisStore = require('connect-redis')(session)
var redis = require('redis')
var redisClient = redis.createClient({
url: `redis://${process.env.REDIS_HOST}:${process.env.REDIS_PORT}`
})
app.use(session({
secret: process.env.SESSION_SECRET,
store: new RedisStore({
client: redisClient,
prefix: 'sid:',
}),
}))
ダメな例
ググった情報でこう書いてたけど、これはlocalhostでしか動きません。
app.js
var session = require('express-session');
var RedisStore = require('connect-redis')(session)
var redis = require('redis')
var redisClient = redis.createClient()
app.use(session({
secret: process.env.SESSION_SECRET,
store: new RedisStore({
client: redisClient,
host: process.env.REDIS_HOST,
port: process.env.REDIS_PORT,
prefix: 'sid:',
}),
}))