Socket
Socket
Sign inDemoInstall

connect

Package Overview
Dependencies
Maintainers
0
Versions
234
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

connect - npm Package Compare versions

Comparing version 1.0.6 to 1.1.0

2

lib/connect.js

@@ -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"],

@@ -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');
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc