Sails JS - 显示闪存消息在 Heroku(生产)上不起作用,但在开发中工作正常

Sails JS - Display flash message doesn't work on Heroku(production) but works fine in development

本文关键字:不起作用 开发 工作 生产 显示 JS 闪存 消息 Sails Heroku      更新时间:2023-09-26

闪存消息仅在开发期间在我的本地计算机上有效...当我在 Heroku 上部署应用程序时,它不起作用。我一直在努力寻找答案,但找不到任何可以解决我问题的东西。

API/策略/闪存.js

module.exports = function(req, res, next) {
    res.locals.flash = {};
    if(!req.session.flash) return next();
    res.locals.flash = _.clone(req.session.flash);
    // clear flash
    req.session.flash = {};
    next();
};

api/controller/UserController.js(在创建操作中( - 成功提交表单后,重定向到主页并显示感谢消息。

res.redirect("/");
req.flash('signup-message', '<div class="thankyou-message-wrapper bg-success"><span class="glyphicon glyphicon-remove pull-right" aria-hidden="true"></span><span class="thankyou-message">Thank you for submitting the form!<br> Our administer will review your submission and publish soon.</span></div>');

view/main/index.ejs - 这就是我从用户控制器呈现消息的方式.js

<%- req.flash('signup-message') %>

有没有人知道为什么当我在 Heroku 上部署时没有显示闪存消息?

您需要

将策略添加到 routes.js 文件中,以便为主页启用策略。例如:

 '/': {
      view: 'homepage', policy: 'flash'
 }

然后在您的用户控制器中,将您的消息添加到 session.flash:

 req.session.flash = {
      message : '<div class="thankyou-message-wrapper bg-success"><span class="glyphicon glyphicon-remove pull-right" aria-hidden="true"></span><span class="thankyou-message">Thank you for submitting the form!<br> Our administer will review your submission and publish soon.</span></div>'
 }

最后,在您的主页中显示消息,首先检查消息是否存在,然后显示:

 <% if(flash && flash.message) { %>
      <%- flash.message %>
 <% } %>