connect fla sh пусто и не рендерится - PullRequest
0 голосов
/ 30 марта 2020

Я пытаюсь внедрить flash messages в моем проекте, но по какой-то причине сообщения не отображаются. Вот мой код:

const session = require("express-session");
const flash = require("connect-flash");
// Support cookie manipulation.
app.use(cookieParser());

// express session middleware
app.use(
  session({
    secret: "keyboard cat",
    resave: false,
    saveUninitialized: false
  })
);
// connect flash
app.use(flash());
//global vars
app.use((req, res, next) => {
  res.locals.success_msg = req.flash("success_msg");
  res.locals.error_msg = req.flash("error_msg");
  res.locals.error = req.flash("error");
  next();
});

вот пример запроса:

   const myEntries = await getUserEntries(res.locals.decodedClaims.uid);
   req.flash("error_msg", "You already own this course.");
   console.log(res.locals); //error_msg: [],
   res.render("dashboard", {
    user: res.locals.decodedClaims,
    entries: myEntries,
    csrfToken: req.csrfToken(),
    title: "Dashboard"
  });
});

и, наконец, файл e js:

<% if(typeof errors != 'undefined'){ %>
  <% errors.forEach(function(error) { %>
    <div class="alert alert-warning alert-dismissible fade show" role="alert">
        <%= error.msg %>
          <button type="button" class="close" data-dismiss="alert" aria- 
               label="Close">
             <span aria-hidden="true">&times;</span>
          </button>
      </div>
<% }); %> <% } %> 
      <% if(success_msg != ''){ %>
          <div class="alert alert-success alert-dismissible fade show my-3" 
           role="alert">
             <%= success_msg %>
               <button type="button" class="close" data-dismiss="alert" aria- 
                 label="Close">
                  <span aria-hidden="true">&times;</span>
               </button>
      </div>
<% } %> 
         <% if(error_msg != ''){ %>
            <div class="alert alert-danger alert-dismissible fade show my-3" 
             role="alert">
               <%= error_msg %>
                 <button type="button" class="close" data-dismiss="alert" aria- 
                    label="Close">
                   <span aria-hidden="true">&times;</span>
                 </button>
          </div>
<% } %>
     <% if(error != ''){ %>
        <div class="alert alert-danger alert-dismissible fade show my-3" 
         role="alert">
           <%= error %>
             <button type="button" class="close" data-dismiss="alert" aria- 
             label="Close">
                <span aria-hidden="true">&times;</span>
          </button>
     </div>
 <% } %>

То же самое с ejs файл, вероятно, в этом нет ничего плохого, но я думаю, что с конфигурацией чего-то не хватает.

Спасибо

Код не был отформатирован до

...