Flash-сообщения¶
Flash-сообщения - это сообщения, которые сохраняются в сессии и доступны в обработчике маршрута, на который выполняется следующий переход. Flash-сообщение удаляется из сессии после того, как оно было отображено в представлении.
Для использования в Node.js flash-сообщений необходимо установить npm модули connect-flash
, cookie-parser
и express-session
.
npm install connect-flash cookie-parser express-session --save
Модуль connect-flash
представляет собой функцию промежуточной обработки и работает только совместно с модулем express-session
.
Пример использования Node.js flash-сообщений.
app.js
const express = require('express'),
app = express(),
cookieParser = require('cookie-parser'),
session = require('express-session'),
flash = require('connect-flash')
const host = '127.0.0.1'
const port = 7000
app.use(cookieParser('secret key'))
app.use(session({ cookie: { maxAge: 3600 * 24 } }))
app.use(flash())
app.get('/get-flash', (req, res) => {
console.log('Flash: ', req.flash('message'))
res.send('Get Flash')
})
app.get('/set-flash', (req, res) => {
req.flash('message', { from: 'Me', to: 'You' })
req.flash('warning', 'Important!')
res.send('Set Flash')
})
app.listen(port, host, () =>
console.log(`Server listens http://${host}:${port}`)
)
Управление сообщениями осуществляется с помощью метода flash()
объекта запроса. Для создания сообщения методу необходимо передать два параметра:
- ключ, по которому в дальнейшем будет получаться сообщение;
- текст сообщения.
req.flash('message', { from: 'Me', to: 'You' })
Получение заданного на предыдущем маршруте flash-сообщения также осуществляется через метод req.flash()
, которому передается ключ, по которому задавалось сообщение.
console.log('Flash: ', req.flash('message'))
Node.js flash-сообщение удаляется только после того, как оно было использовано в шаблоне. В противном случае оно будет доступно на всех последующих маршрутах, пока не будет отображено.