2013-03-12 8 views
29

Sono nuovo di esprimere quadro e qui è quello che ho nel file server.js:ottenendo l'errore strano in sessioni nel quadro espresso

// 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); 
}); 

Se navigando a localhost: 3000 Ottengo questo errore

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

Dov'è il problema?

risposta

75

Stai perdendo il cookieParser middleware:

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

(dal momento che le sessioni sono realizzati tramite i cookie).

+0

e come usare le variabili di sessione? utilizzo request.session.email = usr come commentato nel codice ma genera errore di indefinito ... – beNerd

+1

Devi spostare 'app.use (app.router)' sotto tutti i tuoi percorsi. – robertklep

+0

sì, ha funzionato. Puoi aiutarmi a capire questo concetto di aggiungere stack middleware? Voglio dire come l'ordine fa la differenza e perché? Grazie. – beNerd

0

stavo avendo lo stesso problema.

essere sicuri di chiamare

app.use(express.cookieParser()); 

prima

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

Problemi correlati