node.js - Para utilizar flash messages com Express no meu site eu preciso criar um sistema de Login? - Stack Overflow em Português
Quero implementar flash message no meu site para quando o usuário enviar as informações contidas no formulario de contato, exiba a mensagem 'Mensagem enviada com sucesso'.
Para isso, eu preciso fazer uma associação entre dois requests, correto? E para conseguir isso eu preciso encontrar um jeito de guardar as informações (data) do meu usuário (user). E, ao que eu vi por aí, existem dois meios para isso: Cookies e URL. São os dois parâmetros utilizados para transportar data entre client e server.
O problema é que esses dois são legíveis apenas no lado do cliente. Aí é que entra Session, para resolver isso. Você atribui ao cliente um ID e faz todas as outras solicitações usando esse ID. Então, as informações associadas ao cliente são armazenadas no servidor vinculado a esse ID.
Para mais informações https://www.tutorialspoint.com/expressjs/expressjs_sessions.htm
Mas no meu caso, eu não estou fazendo associações, eu queria apenas que um usuário sem estar cadastrado em minha base de dados, clique no formulario de contato em 'enviar' e seja redirecionado para a página inicial com uma flash message de que a mensagem foi enviada com sucesso.
Pelo que estou entendendo até aqui, se eu tivesse um login em meu site, e digamos que eu tivesse o ID do João, eu poderia pegar esse ID e associar com todas os request feitos por esse ID, certo? Então nesse meio tempo, entre uma request e outra, eu poderia usar o middleware para pegar esse ID e no final da request, exibir a flash message de acordo com a ação do meu usuário. Meu raciocício está correto? Me corrijam se eu estiver errado, por favor.
Bom, ainda tentando exibir uma flash message no meu site sem ter um sistema de login, tentei seguir por esse caminho:
1) Instalando os módulos
2) Solicitando-os
flash        = require('express-flash'),
4) Minha middleware
5) Rota que cria minha flash message utilizando o módulo express-flash
req.flash('success', 'Mensagem enviada com sucesso!');
6) Depois eu escolho a minha rota para passar minha flash message através de req.flash(type)
res.render('home', {flashMessage: req.flash('success')});
Meu home.ejs file:
<%= flashMessage %>
Depois de executar o meu app.js eu recebo a mensagem de que sessionStore não está definida.
Os tutoriais que tem por aí não estão me ajudando pois eles pressupõem que eu já saiba o que estou perguntando agora.
Para poder utilizar flash message no meu site, eu preciso criar um Login e lá pegar alguma informação do meu User e colocar na minha sessionStore??
Ou é possível mostrar flash message sem um login no site? As informações que eu tenho na minha database são apenas as contidas no formulário de contato: Nome, Email, Telefone, Mensagem.