• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

expressjs / session / 741 / 5

Source File

100.0
/session/store.js
1
/*!
2
 * Connect - session - Store
3
 * Copyright(c) 2010 Sencha Inc.
4
 * Copyright(c) 2011 TJ Holowaychuk
5
 * MIT Licensed
6
 */
7

8
'use strict';
9

10
/**
11
 * Module dependencies.
12
 * @private
13
 */
14

15
var Cookie = require('./cookie')
1✔
16
var EventEmitter = require('events').EventEmitter
1✔
17
var Session = require('./session')
1✔
18
var util = require('util')
1✔
19

20
/**
21
 * Module exports.
22
 * @public
23
 */
24

25
module.exports = Store
1✔
26

27
/**
28
 * Abstract base class for session stores.
29
 * @public
30
 */
31

32
function Store () {
1✔
33
  EventEmitter.call(this)
103✔
34
}
35

36
/**
37
 * Inherit from EventEmitter.
38
 */
39

40
util.inherits(Store, EventEmitter)
1✔
41

42
/**
43
 * Re-generate the given requests's session.
44
 *
45
 * @param {IncomingRequest} req
46
 * @return {Function} fn
47
 * @api public
48
 */
49

50
Store.prototype.regenerate = function(req, fn){
1✔
51
  var self = this;
2✔
52
  this.destroy(req.sessionID, function(err){
2✔
53
    self.generate(req);
2✔
54
    fn(err);
2✔
55
  });
56
};
57

58
/**
59
 * Load a `Session` instance via the given `sid`
60
 * and invoke the callback `fn(err, sess)`.
61
 *
62
 * @param {String} sid
63
 * @param {Function} fn
64
 * @api public
65
 */
66

67
Store.prototype.load = function(sid, fn){
1✔
68
  var self = this;
1✔
69
  this.get(sid, function(err, sess){
1✔
70
    if (err) return fn(err);
1✔
71
    if (!sess) return fn();
1✔
72
    var req = { sessionID: sid, sessionStore: self };
1✔
73
    fn(null, self.createSession(req, sess))
1✔
74
  });
75
};
76

77
/**
78
 * Create session from JSON `sess` data.
79
 *
80
 * @param {IncomingRequest} req
81
 * @param {Object} sess
82
 * @return {Session}
83
 * @api private
84
 */
85

86
Store.prototype.createSession = function(req, sess){
1✔
87
  var expires = sess.cookie.expires
38✔
88
    , orig = sess.cookie.originalMaxAge;
89
  sess.cookie = new Cookie(sess.cookie);
38✔
90
  if ('string' == typeof expires) sess.cookie.expires = new Date(expires);
38✔
91
  sess.cookie.originalMaxAge = orig;
38✔
92
  req.session = new Session(req, sess);
38✔
93
  return req.session;
38✔
94
};
  • Back to Build 741
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc