2015-05-31 23 views
5

ich einige Probleme zu arbeiten, die Fehlermeldung erhalte ich ist connect-Flash bekommen habe,:Express: req.flash() erfordert Sitzungen

'Fehler: req.flash() erfordert Sitzungen'

Ich habe gesehen, das kann wegen der Bestellung der App, aber ich bin mir nicht sicher, ob dies der Fall ist hier.

App.js:

var express = require('express'); 
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var session = require('express-session'); 
var flash = require('connect-flash'); 
var passport = require('passport'); 
var app = express(); 

app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
app.use(express.static(path.join(__dirname, 'public'))); 

app.use(session({secret: '{secret}', name: 'session_id', saveUninitialized: true, resave: true})); 
app.use(passport.initialize()); 
app.use(passport.session()); 
app.use(flash()); 

Routen usw. sind unter

Blitzerzeugungscode:

passport.authenticate('local', { failureRedirect: '/login', successRedirect: '/', failureFlash: true}) 
+0

so, nur entfernen Sie Ihr Präfix ergibt folgende Frage hier auf SO: http://StackOverflow.com/Questions/19168355/Req-Flash-Requires-Sessions –

+0

Ich habe schon gelesen, dass ich nicht Sitzung verwenden. zerstöre() überall. Irgendwelche anderen Ideen? –

+0

[Passport benötigt Flash konfiguriert werden * vor * selbst] (http://stackoverflow.com/questions/19984996/setting-up-connect-flash-middleware-for-use-by-passport). Versuchen Sie, 'app.use (flash())' vor dem Pass zu setzen – laggingreflex

Antwort

3

Das Problem war mit, wie meine Ansicht gerendert wurde immer (mit req.flash Daten)

Ändern:

loginShow: function(req, res){ 
    res.render('login', { message: req.flash }); 
} 

Um dies:

loginShow: function(req, res){ 
    res.render('login', { message: req.flash() }); 
} 

Fest der Fehler und Ursachen connect-Blitz zu handeln, wie erwartet.

4

Läuft Ihr Redis-Server? Versuchen Sie

redis-server 

Dies löste das Problem für mich.