Флэш-сообщения Node.js не работают

Может кто-нибудь сказать мне, почему флеш-сообщения не работают в моем случае?

Вот как я пытаюсь его использовать:

Это часть моего 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, но флеш-сообщение не отображается..


person Valip    schedule 14.06.2017    source источник


Ответы (2)


Исправлено это путем замены res.locals.errors на res.locals.error

person Valip    schedule 14.06.2017

В вашем контроллере app.get('/ftp/create',fun... попробуйте отобразить флэш-сообщения, например:

resp.render('view_fle',{
 error:req.flash('error') 
......
....
person Deepak M    schedule 14.06.2017