connect-redis setup in typescript

Viewed 5856

Based on docs, this is how to create a redisstore:

var session = require('express-session');
var RedisStore = require('connect-redis')(session);

app.use(session({
    store: new RedisStore(options),...
}));

I am converting them to typescript:

import * as session from 'express-session';
import * as RedisStore from 'connect-redis';

app.use(session({
    store: new (RedisStore(session))(options),...
}));

However, I am getting an error. How do you convert this line of code: var RedisStore = require('connect-redis')(session);

3 Answers

I have figured it out:

import * as session from 'express-session';
import * as connectRedis from 'connect-redis';
let RedisStore = connectRedis(session);

app.use(session({
    store: new RedisStore({client: redis.createClient(6379, "localhost")}),...
}));

This works:

import connectRedis from 'connect-redis';
import session from 'express-session';
const RedisStore = connectRedis(session);

 app.use(
        session({
            secret: 'secret',
            store: new RedisStore({host: '127.0.0.1', port: 6379}),
            resave: false,
            saveUninitialized: false
        })
    );

Basic Redis Setup

import statements

const express = require('express');

const session = required('express-session');

const redis = require('redis');

const connectRedis = require('connect-redis');

const app = express();

app.use(express.json())

connect to redis store

const RedisStore = connectRedis(session);

//config redis 

const redisClient = redis.createClient({

port: 6379,

host: 'localhost'

});

configure session middleware

app.use(session({

store: new RedisStore({client: redisClient}),

secret: 'mySecret',

saveUninitialized: false,

resave: false,

name:'sessionId',

cookie: {

//secure false for non https request , keep false in production

secure: false,

// if true, prevents client side JS from reading the cookie

httpOnly: true,

//session age in millisec // 30 mins

maxAge: 1000 * 60 * 30

}

}));
Related