Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | 4x 4x 32x 32x 32x 136x 83x 83x 83x 68x 68x 68x 68x 68x 68x 5x 5x 4x | "use strict"; const Store = require('express-session/session/store'); const defer = require('../helper/defer'); /** * In memory session store. * * Apparently the default session store is not menat to be used for prouction * or something. * * Will not scale horizontally. */ class MemorySessionStore extends Store { /** * @param {object} options see fields */ constructor(options = {}) { super(); /** * In memory sessions list. */ this.sessions = {}; /** * Session dueation */ this.sessionsTTL = options.sessionsTTL || 8 * 60 * 60 * 1000; } /** * clean up expired sessions * @protected */ cleanup() { for (let sessionId in this.sessions) { let session = this.sessions[sessionId]; Eif (session) { Iif (session.expires < Date.now()) { delete this.sessions[sessionId]; } } } } /** * @override */ get(sessionId, callback) { this.cleanup(); defer(callback, null, this.sessions[sessionId]); } /** * @override */ set(sessionId, session, callback) { this.cleanup(); this.sessions[sessionId] = session; session.expires = Date.now() + this.sessionsTTL; defer(callback); } /** * @override */ destroy(sessionId, callback) { delete this.sessions[sessionId]; defer(callback); } } module.exports = MemorySessionStore; |