快递:req.flash()需要会话

我有一些问题,让连接闪光灯工作,我得到的错误信息是:

'错误:req.flash()需要会话'

我已经看到这可能是因为应用程序的顺序,但我不知道这是否是这种情况。

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()); 

路线等在下面

闪光生成代码:

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

你的redis服务器在运行吗? 尝试

 redis-server 

这为我解决了这个问题。

问题是我的视图如何呈现(使用req.flash数据)

改变这个:

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

对此:

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

修复了错误并导致连接闪光按预期行事。