Skip to content

Commit

Permalink
fix(<redis session>): fixed the issue which not store session into redis
Browse files Browse the repository at this point in the history
* user session 没有存入redis
* 因为有issue,需要提前创建好redisclient,否则host 会被覆盖成127.0.0.1
https://stackoverflow.com/search?q=docker+redis+express+session
redis/ioredis#568
dreambo8563 committed Jan 23, 2018
1 parent f31e653 commit c7494d4
Showing 2 changed files with 16 additions and 5 deletions.
20 changes: 15 additions & 5 deletions src/app/app.ts
Original file line number Diff line number Diff line change
@@ -9,9 +9,14 @@ import { rootDir } from "../config/"
import routes from "../routes"
import * as session from "express-session"
import * as connectRedis from "connect-redis"
const RedisStore = connectRedis(session)
import * as Redis from "ioredis"
import { config as redisConfig } from "../redis/config"

// create the client because of the issue
// https://stackoverflow.com/search?q=docker+redis+express+session
// https://github.com/luin/ioredis/issues/568
const RedisStore = connectRedis(session)
const redisClient = new Redis(redisConfig.port, redisConfig.host)
const app = express()

// view engine setup
@@ -23,23 +28,28 @@ app.use(favicon(path.join(rootDir(), "public", "favicon.png")))
app.use(logger("dev"))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))
app.use(cookieParser())
app.use(cookieParser(redisConfig.secret))
app.use(
session({
name: redisConfig.name,
secret: redisConfig.secret,
resave: true,
saveUninitialized: true,
resave: true,
cookie: redisConfig.cookie,
// @ts-ignore
store: new RedisStore({
host: redisConfig.host,
port: redisConfig.port
client: redisClient
})
})
)
app.use(express.static(path.join(rootDir(), "public")))

// router bind
app.use("/", function(req, res, next) {
if (req.session.pageCount) req.session.pageCount++
else req.session.pageCount = 1
res.render("index", { title: JSON.stringify(req.session) })
})
app.use("/api", routes.api)
app.use("/debug", routes.debug)
app.use("/tencent", routes.tencent)
1 change: 1 addition & 0 deletions src/routes/todo.ts
Original file line number Diff line number Diff line change
@@ -9,6 +9,7 @@ const router = express.Router()

router.post("/", async (req, res) => {
let todoItem: Todo
console.log(req.session)
try {
todoItem = new Todo(req.body.name, req.body.description)
// save it to db

0 comments on commit c7494d4

Please sign in to comment.