Node.js flash消息无效

时间:2017-06-14 09:08:49

标签: javascript node.js express flash-message

有人可以告诉我为什么flash消息在我的情况下不起作用吗?

这就是我尝试使用它的方式:

这是我app.js的一部分:

var express  = require('express');
var app      = express();
var passport = require('passport');
var flash    = require('connect-flash');

var session          = require('express-session');
var exphbs           = require('express-handlebars');
var passport         = require('passport')  
var RedisStore       = require('connect-redis')(session)
var redis            = require('redis').createClient();

app.use(session({
     secret: "I can haz working sessions?",
     store: new RedisStore({ client: redis })
}));

app.use(flash());
app.use(function(req, res, next){
  res.locals.success = req.flash('success');
  res.locals.errors = req.flash('error');
  next();
});

app.use(passport.initialize());
app.use(passport.session());

这就是我试图在我的控制器中使用它的方式:

module.exports.storageCreatePost = function(req, res) {
  req.flash('error', "Test");
  res.redirect('/ftp/create');
})

这是我应该呈现消息的hbs视图:

  {{#if error}}
    <p class="alert alert-warning">{{error}}</p>
  {{/if}}

它成功地将我重定向到/ftp/create,但不会呈现Flash消息..

2 个答案:

答案 0 :(得分:0)

通过将res.locals.errors替换为res.locals.error

来解决此问题

答案 1 :(得分:0)

app.get('/ftp/create',fun...控制器中,尝试渲染flash消息,如

resp.render('view_fle',{
 error:req.flash('error') 
......
....