Зачем нам нужно заполнять значение res.locals при использовании флеш-сообщения? - PullRequest
1 голос
/ 04 мая 2019

Я смотрел на некоторые вопросы, используя флэш-сообщения для Nodejs и Express, используя пакет connect-flash

Я пытался обернуть голову вокруг этого пакета.

Фактическая документация из connect-flash гласит, что

Flash-сообщения хранятся в сеансе

Для использования флеш-сообщения в соответствии с документацией необходим код:

app.get('/flash', function(req, res){
  // Set a flash message by passing the key, followed by the value, to req.flash().
  req.flash('info', 'Flash is back!')
  res.redirect('/');
});

app.get('/', function(req, res){
  // Get an array of flash messages by passing the key to req.flash()
  res.render('index', { messages: req.flash('info') });
});

Я не понимаю необходимости делать следующее, что я видел во многих местах

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

Я понимаю, что res.locals хранит данные для определенного ответа (который отвечает на определенный запрос). Но флэш-сообщения уже сохранены в сеансе и доступны для использования в другом маршруте, как в примере выше, используя что-то вроде

req.flash('info')

...