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();
}
}
网友评论