Skip to content

Commit 16cbfb2

Browse files
committed
Correctly inherit from EventEmitter class in Store base class
1 parent f2a8203 commit 16cbfb2

File tree

3 files changed

+24
-11
lines changed

3 files changed

+24
-11
lines changed

HISTORY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
unreleased
22
==========
33

4+
* Correctly inherit from `EventEmitter` class in `Store` base class
45
* Fix issue where `Set-Cookie` `Expires` was not always updated
56
* Methods are no longer enumerable on `req.session` object
67

session/store.js

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,35 @@
99

1010
/**
1111
* Module dependencies.
12+
* @private
1213
*/
1314

15+
var Cookie = require('./cookie')
1416
var EventEmitter = require('events').EventEmitter
15-
, Session = require('./session')
16-
, Cookie = require('./cookie');
17+
var Session = require('./session')
18+
var util = require('util')
1719

1820
/**
19-
* Initialize abstract `Store`.
20-
*
21-
* @api private
21+
* Module exports.
22+
* @public
23+
*/
24+
25+
module.exports = Store
26+
27+
/**
28+
* Abstract base class for session stores.
29+
* @public
2230
*/
2331

24-
var Store = module.exports = function Store(options){};
32+
function Store () {
33+
EventEmitter.call(this)
34+
}
2535

2636
/**
27-
* Inherit from `EventEmitter.prototype`.
37+
* Inherit from EventEmitter.
2838
*/
2939

30-
Store.prototype.__proto__ = EventEmitter.prototype;
40+
util.inherits(Store, EventEmitter)
3141

3242
/**
3343
* Re-generate the given requests's session.

test/session.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ var express = require('express')
1111
var fs = require('fs')
1212
var http = require('http')
1313
var https = require('https')
14+
var util = require('util')
1415

1516
var min = 60 * 1000;
1617

@@ -2289,11 +2290,12 @@ function writePatch() {
22892290
}
22902291
}
22912292

2292-
function SyncStore() {
2293-
this.sessions = Object.create(null);
2293+
function SyncStore () {
2294+
session.Store.call(this)
2295+
this.sessions = Object.create(null)
22942296
}
22952297

2296-
SyncStore.prototype.__proto__ = session.Store.prototype;
2298+
util.inherits(SyncStore, session.Store)
22972299

22982300
SyncStore.prototype.destroy = function destroy(sid, callback) {
22992301
delete this.sessions[sid];

0 commit comments

Comments
 (0)