Sails.js, храним сессии в БД

01.06.2015

В Sails.js по умолчанию, все сессии хранятся в памяти, и при перезапуске процесса, потрутся и пользователям придется авторизоваться еще раз. На такой случай в Sails.js предусмотрена возможность хранить сессии в Redis, и это вполне неплохое решение, но что делать если Redis не используется в проекте? Разворачивать специально только ради хранения сессий?

К счастью, есть решение. Так как Sails.js основан на Express, мы можем воспользоваться модулем express-mysql-session.

Устанавливаем сам модуль:

$ npm install express-mysql-session --save

В конфигурационном файле session.js пишем:

var MySQLSessionStore = require('express-mysql-session');

var store_options = {
    host: 'localhost',
    port: 3306,
    user: 'user',
    password: 'pass',
    database: 'db'
}

module.exports.session = {
    secret: 'SECRET_KEY',
    store: new MySQLSessionStore(store_options)
}

После старта приложения у вас создаться таблица sessions, в которой и будут храниться все новые сессии.