2015-06-05 88 views
0

有沒有更好的方法來做req.flash消息?就像一個將所有Flash消息添加到一個對象的函數一樣?節點js Flash消息

app.get('/forgot', function(req, res) { 
    var info = req.flash('info'), 
     error = req.flash('error'), 
     success = req.flash('success'), 
     user = req.user; 

    var send = {}; 
     send.user = user; 
     send.messages = { 
      info: info, 
      error: error, 
      success: success 
     } 
    res.render('forgot', send); 
}); 
+0

你爲什麼不只是使功能抽象?然後它成爲你想要的 –

+0

是的,這是一個很好的問題:) 但我不想重新發明輪子,可以這麼說。 但如果我必須這樣做。有沒有辦法動態查看所有的falsh消息? –

回答

0

那麼我做了我自己的腳本。

helper.js

module.exports = function(req, res){ 
    return function(){ 
     var buf = '', 
      messages = req.flash(), 
      types = Object.keys(messages); 

     for(var i = 0; i < types.length; ++i){ 
      var type = types[i], 
       msgs = messages[type]; 

      for(var j = 0; j < msgs.length; ++j){ 
       buf += '<div class="alert alert-' + type + ' alert-dismissable"><a class="panel-close close" data-dismiss="alert">×</a>' + msgs[j] + '</div>'; 
      } 
     } 
     return buf; 
    } 
}; 

server.js

app.use(function (req, res, next) { 
    res.locals.messages = require('./config/helpers.js')(req, res); 
    next(); 
}); 

index.jade

!= messages()