27 votes

obtenir une erreur bizarre dans les sessions dans le cadre express

Je suis nouveau pour exprimer le framework et voici ce que j'ai dans le fichier server.js:

 // Module dependencies.
var application_root = __dirname,
express = require( 'express' ), //Web framework
path = require( 'path' ), //Utilities for dealing with file paths
mongoose = require( 'mongoose' ); //MongoDB integration

//Create server
var app = express();

// Configure server
app.configure( function() {

app.use( express.bodyParser() );
app.use( express.methodOverride() );
app.use( app.router );
app.use(express.session({secret:'thisismysupersecret'}));
app.use( express.static( path.join( application_root, 'site') ) );
app.use( express.errorHandler({ dumpExceptions: true, showStack: true }));
});
app.post("/verifyLogin",function(request,response){
var usr=request.body.username;
var pass=request.body.password;
//request.session.email=usr;
response.redirect('dashboard');
});

//Start server
var port = 3000;
app.listen( port, function() {
console.log( 'Express server listening on port %d in %s mode', port, app.settings.env);
});
 

Lorsque je navigue vers localhost: 3000, j'obtiens cette erreur

 500 TypeError: Cannot read property 'connect.sid' of undefined
 

Où est le problème?

70voto

robertklep Points 29669

Le middleware cookieParser vous manque:

 ...
app.use( express.cookieParser() );
app.use(express.session({secret:'thisismysupersecret'}));
...
 

(puisque les sessions sont implémentées à l'aide de cookies).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X