¿Objeto de expiración en sesión rápida no es el tipo correcto?

De vez en cuando, mi aplicación nodejs, que utiliza los módulos express v4.12.2 y express-session v1.13.0, lanza la siguiente excepción TypeError y se bloquea:

 /app/node_modules/express-session/node_modules/cookie/index.js:136 if (opt.expires) pairs.push('Expires=' + opt.expires.toUTCString()); ^ TypeError: opt.expires.toUTCString is not a function at Object.serialize (/app/node_modules/express-session/node_modules/cookie/index.js:136:56) at setcookie (/app/node_modules/express-session/index.js:576:21) at ServerResponse. (/app/node_modules/express-session/index.js:204:7) at ServerResponse.writeHead (/app/node_modules/on-headers/index.js:46:16) at ServerResponse._implicitHeader (_http_server.js:157:8) at ServerResponse.res.write (/app/node_modules/compression/index.js:82:14) at ReadStream.ondata (_stream_readable.js:529:20) at emitOne (events.js:90:13) at ReadStream.emit (events.js:182:7) at readableAddChunk (_stream_readable.js:147:16) at ReadStream.Readable.push (_stream_readable.js:111:10) at onread (fs.js:1822:12) at FSReqWrap.wrapper [as oncomplete] (fs.js:614:17) 

No estoy seguro de por qué esto sería un error, ya que toUTCString() es una función. (A menos que opt.expires no sea un objeto Date ).

Desde la prueba de la aplicación, y también porque esto parece involucrar opt.expires , me pregunto si esto sucede cuando se agota la sesión.

Aquí es cómo estoy configurando sesiones:

 var express = require('express'); var expressSession = require('express-session'); ... var app = express(); ... app.use(expressSession({ key: 'application.sid', secret: 'some.secret.string', cookie: { maxAge: 60 * 60 * 1000, expires: 60 * 60 * 1000 }, store: new mongoStore({ mongooseConnection: mongoose.connection, collection: 'sessions' }), saveUninitialized: true, rolling: true, resave: true, secure: true })); 

Mi objective es que se extienda la caducidad de una sesión si el usuario sigue utilizando la aplicación.

¿Hay algún error en cómo lo he configurado o me he topado con algún error que se solucionaría con una combinación específica de versiones de módulos?

req.session.cookie.expires debe ser una fecha, no un número.

Cada sesión tiene un objeto de cookie único que lo acompaña. Esto le permite alterar la cookie de sesión por visitante:

 var hour = 3600000; req.session.cookie.expires = new Date(Date.now() + hour); req.session.cookie.maxAge = hour;