2017-12-13 2 views
2

플래시 메시지가 작동하지 않는 것처럼 보입니다. 나는 아주 명백한 것을 놓치고 있다고 생각하지만, 한 시간 만 봤습니다. 왜 그런지 전혀 몰라요. 작동 안함.플래시 메시지가 작동하지 않습니다. 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) %> 

지금 내가 잘못 모르겠어요를 렌더링 그리고 난 모든 시도했습니다 가능한 픽스는 여기에서, 그리고 구글을 통해 발견되었지만, 그냥 작동하지 않는 것 같습니다.

답변

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

@ 윌리엄 나는 너무 열심히 디버깅 오류가 있다고 생각하지 않습니다. 행운을 빕니다 – shivshankar

관련 문제