Comparing version 1.0.6 to 1.1.0
@@ -29,3 +29,3 @@ | ||
exports.version = '1.0.6'; | ||
exports.version = '1.1.0'; | ||
@@ -32,0 +32,0 @@ /** |
@@ -13,3 +13,4 @@ | ||
var utils = require('../../utils'); | ||
var utils = require('../../utils') | ||
, Cookie = require('./cookie'); | ||
@@ -88,2 +89,32 @@ /** | ||
/** | ||
* Re-loads the session data _without_ altering | ||
* the maxAge or lastAccess properties. Invokes the | ||
* callback `fn(err)`, after which time if no exception | ||
* has occurred the `req.session` property will be | ||
* a new `Session` object, although representing the | ||
* same session. | ||
* | ||
* @param {Function} fn | ||
* @return {Session} for chaining | ||
* @api public | ||
*/ | ||
Session.prototype.reload = function(fn){ | ||
// TODO: refactor duplicate logic | ||
var req = this.req; | ||
req.sessionStore.get(this.id, function(err, sess){ | ||
if (err) return fn(err); | ||
if (!sess) return fn(new Error('failed to load session')); | ||
var expires = sess.cookie.expires | ||
, orig = sess.cookie.originalMaxAge; | ||
sess.cookie = new Cookie(sess.cookie); | ||
if ('string' == typeof expires) sess.cookie.expires = new Date(expires); | ||
sess.cookie.originalMaxAge = orig; | ||
req.session = new Session(req, sess); | ||
fn(); | ||
}); | ||
return this; | ||
}; | ||
/** | ||
* Destroy `this` session. | ||
@@ -90,0 +121,0 @@ * |
{ | ||
"name": "connect", | ||
"version": "1.0.6", | ||
"version": "1.1.0", | ||
"description": "High performance middleware framework", | ||
@@ -5,0 +5,0 @@ "keywords": ["framework", "web", "middleware", "connect", "rack"], |
45
test.js
@@ -8,17 +8,34 @@ | ||
// expire sessions within a minute | ||
// /favicon.ico is ignored, and will not | ||
// receive req.session | ||
connect( | ||
function(req, res, next){ | ||
var options = { | ||
path: process.env.HOME + '/downloads/vid.avi', | ||
callback: function(err){ | ||
if (err) { | ||
console.log('ERROR'); | ||
throw err; | ||
} else { | ||
console.log('done'); | ||
} | ||
} | ||
}; | ||
connect.static.send(req, res, next, options); | ||
connect.cookieParser() | ||
, connect.session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}) | ||
, connect.favicon() | ||
, function(req, res, next){ | ||
var sess = req.session; | ||
if (sess.views) { | ||
sess.cookie.maxAge = 90000; | ||
res.setHeader('Content-Type', 'text/html'); | ||
res.write('<p>views: ' + sess.views + '</p>'); | ||
res.write('<p>expires in: ' + (sess.cookie.maxAge / 1000) + 's</p>'); | ||
res.end(); | ||
sess.views++; | ||
} else { | ||
sess.views = 1; | ||
setInterval(function(){ | ||
var prev = sess.views; | ||
sess.reload(function(err){ | ||
if (err) console.error(err.toString()); | ||
console.log(); | ||
console.log('previous views %d, updated %d', prev, req.session.views); | ||
console.log('time remaining until expiry: %ds', (req.session.cookie.maxAge / 1000)); | ||
}); | ||
}, 3000); | ||
res.end('welcome to the session demo. refresh!'); | ||
} | ||
} | ||
).listen(3000); | ||
).listen(3000); | ||
console.log('port 3000: 1 minute expiration demo'); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
76782
2795
10