簡體   English   中英

Sails JS-顯示Flash消息不適用於Heroku(生產),但在開發中效果很好

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

Flash消息僅在開發期間在我的本地計算機上起作用...當我在Heroku上部署該應用程序時它不起作用。 我一直在尋找答案,但是找不到解決我問題的方法。

API /政策/ flash.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(在create操作內)-成功提交表單后,重定向到主頁並顯示“謝謝”消息。

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-這是我從UserController.js呈現消息的方式

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

是否有人對我在Heroku上部署時為何未顯示Flash消息有任何見解?

您需要將策略添加到routes.js文件中,以啟用主頁策略。 例如:

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

然后在您的UserController中,將您的消息添加到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 %>
 <% } %>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM