美文网首页
Nodejs中connect-flash模块的调用

Nodejs中connect-flash模块的调用

作者: _李雷 | 来源:发表于2017-02-26 20:03 被阅读0次

    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();
        }
    }
    

    相关文章

      网友评论

          本文标题:Nodejs中connect-flash模块的调用

          本文链接:https://www.haomeiwen.com/subject/ryqawttx.html