Express Session with TypeScript

Irving Dinh
1 min readSep 16, 2016

--

Required Packages

We’ll need the default “express-session” package from npm:

$ npm install -s express-session

After that, because we’re using TypeScript, so:

$ typings install -s -g dt~express-session

Note: You may want to search the typings source before install it with “dt~express-session” or “env~express-session” by:

$ typings search express-session

Extending the “Express.Request” Interface

Because “express-session” isn’t built-in, so we must extend the “Express.Request” interface so that we can use it in our controller. For your reference:

import * as Express from ‘express’;export interface Request extends Express.Request { session: [any];}

Injecting “express-session” into Express instance

To injecting the “express-session”, you can easily following the oficial guide of them, for your reference in TypeScript:

import * as Express from ‘express’;
import * as ExpressSession from ‘express-session’;
const instance = Express();instance.use(ExpressSession({
secret: ‘i-love-husky’,
resave: false,
saveUninitialized: true
}));

Using “express-session” in Controllers

After above setups, you’re able to use “express-session” in your controller. For your reference in TypeScript:

public static getIndex = async function (
request: Request,
response: Response,
next: NextFunction
) {
// Set the session content.
request.session[‘key-name’] = ‘Hello, world!’;
// Get the session content.
const sessionMessage = request.session[‘key-name’];
}

Hope you enjoy your TypeScript projects :)

--

--