connect-flash模塊的使用
connect-flash簡介
connect-flash是nodejs中的一個模塊桐臊,flash是一個暫存器箱蟆,而且暫存器里面的值使用過一次便被清空,適合用來做網站的提示信息。
connect-flash如何安裝
$ npm install --save connect-flash
connect-flash如何使用
在index.js中引入
flash = require('connect-flash');
在app中使用中間件
app.use(flash());
將flash中存入的變量存入res.locals變量中,假如我要在網站中使用flash中存的error和success變量短蜕,加可以把它們傳入locals變量中,這樣所有的模板都可以拿到這個變量傻咖。
app.use(function(req,res,next){
res.locals.user=req.session.user;
res.locals.success=req.flash('success').toString();
res.locals.error=req.flash('error').toString();
next();
});
在頁面中假如根據success和error是否存在給用戶相應的提示:
<div class="ui grid">
<div class="four wide column"></div>
<div class="eight wide column">
<% if (success) { %>
<div class="ui success message">
<p><%= success %></p>
</div>
<% } %>
<% if (error) { %>
<div class="ui error message">
<p><%= error %></p>
</div>
<% } %>
</div>
</div>
在頁面跳轉之前給success和error賦值朋魔,就可以讓它們獲得相應的變量,顯示給用戶后卿操,這些變量會被清空警检,例如檢測用戶是否登錄:
module.exports={
checkLogin:function checkLogin(req,res,next){
if(!req.session.user){
req.flash('error','未登錄');
return res.redirect('/signin');
}
next();
},
checkNotLogin:function checkNotLogin(req,res,next){
if(req.session.user){
req.flash('error','已登錄');
return res.redirect('back');//返回之前的頁面
}
next();
}
}