微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

express – node.js connect-flash消息没有显示出来

我正在尝试为我正在尝试构建的登录页面实现一个非常基本的错误消息.发布请求的代码如下.

app.post('/login',function(req,res){
  User.findOne({username:req.body.user.username},function(err,info){
  if(err){
    req.flash('error','There was an error on our end. Sorry about that.');
    res.redirect('/');
  }

  if(info==null){
    req.flash('error','Incorrect Username. Please try again,or make an account');
    res.redirect('/login');
  }
  else{
    if(req.body.user.password==info.password){
      res.redirect('/users/' + info.username);
    }
    else{
      req.flash('error','Incorrect Password');
      res.redirect('/login');
    }
  }
});
});

虽然重定向确实发生,但是当我触发空案例时,我从未看到错误消息.
我的路线获取方法如下:

app.get('/login',res){
   res.render('login',{
     title: 'Login'
   });
});

解决方法

您需要将Flash消息传递给模板,并在那里自己渲染:

app.get('/login',{
     title  : 'Login',errors : req.flash('error')
   });
});

如果您正在使用EJS模板(例如),则检查错误是否包含值,并显示它:

<% if (errors) { %>
  <p class="error"><%= errors %></p>
<% } %>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐