2017-12-13 17 views
2

フラッシュメッセージが正常に動作していないように見えますが、私は何か非常に明白なものを見逃していると思いますが、それは1時間ありました。働いていない。フラッシュメッセージが動作しないexpress/nodejs/ejs

マイミドルウェア:ちょうどテストの目的のために

// Session middleware 
app.use(session({ 
    secret: 'stuffedbagels', 
    resave: true, 
    saveUninitialized: true 
})); 

// Express Messages middleware 
app.use(require('connect-flash')()); 
app.use(function(req, res, next) { 
    res.locals.messages = require('express-messages')(req, res); 
    next(); 
}); 

アプリのルート、。

// Route that creates a flash message using the express-flash module 
app.all('/express-flash', function(req, res) { 
    req.flash('success', 'This is a flash message using the express-flash module.'); 
    res.redirect(301, '/'); 
}); 

テンプレート(彼らのgithubのから右にコピー)

<div id="messages"> 
<% Object.keys(messages).forEach(function (type) { %> 
    <ul class="<%= type %>"> 
    <% messages[type].forEach(function (message) { %> 
    <li><%= message %></li> 
    <% }) %> 
    </ul> 
<% }) %> 
</div> 

どのように私は

<%- messages('msg_temp', locals) %> 

は、今私は、間違っているかわからないんだけど、それをレンダリングしていると私はすべてのを試してみました私がここで見つけた可能性のある修正、そしてGoogleを通して、しかしそれはちょうど働きたいと思わない。

答えて

0

エラー/成功

req.flash('success', "hello flash"); 

のようなキーとメッセージを設定する必要があり、あなたのres.localsで同じキーを取得しますか

  {% if success %} 
      <div class="alert alert-success alert-dismissable"> 
        <button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button> 
       {{ success }} 
      </div> 
{% endif %} 

のようなビューにレンダリング中に言うことができます注: セッションのクッキー内のフラッシュストアキーは一度だけフラッシュされます

+0

これは「成功」のためのものですか?テンプレートは何のためのものなのですか?私はこの正確な設定作業を見てきました。それがなぜ私にとって混乱しているのですか? – William

+0

これはかなり古いことは分かっていますが、これはとにかく機能しません。 ejs自体は構文エラーです。 – William

+0

@William私はエラーをデバッグしようとするのは難しくないと思う。幸運 – shivshankar

関連する問題