From 6024a1fe7ffee8e577cb7306418f9a6e60d5588f Mon Sep 17 00:00:00 2001 From: Gregory Ballantine Date: Wed, 23 Nov 2022 22:17:36 -0500 Subject: [PATCH] Added option to enable/disable redis session store; fixed the checks for username, password, and database number when setting up the Redis connection --- config/default.json | 1 + index.js | 33 +++++++++++++++++++++------------ src/redis.js | 6 +++--- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/config/default.json b/config/default.json index d092f17..8269fef 100644 --- a/config/default.json +++ b/config/default.json @@ -7,6 +7,7 @@ "driver": "sqlite", "connection_string": "data/overseer.db" }, + "use_redis": false, "redis": { "host": "192.168.1.10", "port": 6379, diff --git a/index.js b/index.js index a8d47ff..e0a8423 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,7 @@ const express = require('express'); const session = require('express-session'); const RedisStore = require('connect-redis')(session); -// const flash = require('express-flasher'); +// const flash = require('@bitgoblin/express-flasher'); // instantiate new express.js app const app = express(); @@ -15,18 +15,27 @@ const config = require('config'); }); })(); -// initialize Redis store for session data -const redisClient = require('./src/redis'); +if (config.get('use_redis')) { + // initialize Redis store for session data + const redisClient = require('./src/redis'); -// initialize express.js session w/ Redis datastore -app.use(session({ - store: new RedisStore({ - client: redisClient, - }), // use Redis datastore - resave: false, // don't save session if unmodified - saveUninitialized: false, // don't create session until something stored - secret: 'lord of the rings', -})); + // initialize express.js session w/ Redis datastore + app.use(session({ + store: new RedisStore({ + client: redisClient, + }), // use Redis datastore + resave: false, // don't save session if unmodified + saveUninitialized: false, // don't create session until something stored + secret: 'lord of the rings', + })); +} else { + // initialize express.js session w/ Redis datastore + app.use(session({ + resave: false, // don't save session if unmodified + saveUninitialized: false, // don't create session until something stored + secret: 'lord of the rings', + })); +} // setup flash messaging // app.use(flash.flash()); diff --git a/src/redis.js b/src/redis.js index 80ac3ff..70af885 100644 --- a/src/redis.js +++ b/src/redis.js @@ -4,11 +4,11 @@ exports.default = function() { let redisUrl = 'redis://'; // add the redis username if defined - if (typeof redisConfig.get('username') !== 'undefined') { + if (redisConfig.has('username')) { redisUrl += redisConfig.get('username'); } // add the user password if defined - if (typeof redisConfig.get('password') !== 'undefined') { + if (redisConfig.has('password')) { redisUrl += ':' + redisConfig.get('password') + '@'; } // add redis host URL @@ -16,7 +16,7 @@ exports.default = function() { // add redis host port redisUrl += ':' + redisConfig.get('port'); // add redis database number if defined - if (typeof redisConfig.get('number') !== 'undefined') { + if (redisConfig.has('number')) { redisUrl += redisConfig.get('number'); }