node.js - 将 Express-Flash 与 EJS 结合使用

标签 node.js view ejs

我正在尝试调整我的错误代码,以便它也可以处理其他类型的错误,例如成功

例如,当我呈现注册页面时

res.render('signup', {
errors: req.flash('errors')
});

提交页面后,我使用以下代码成功发送错误提示:

req.flash('errors', { msg: 'Account with that email address already exists.' });

并用代码正确渲染它。

<% if (errors.length > 0 ) { 
      for(var i=0; i < errors.length; i++) { %>
    <div class="alert alert-danger alert-dismissible fade show" role="alert">
        <button type="button" class="close" data-dismiss="alert" aria-
    label="Close">
            <span aria-hidden="true">&times;</span>
        </button>
        <%= errors[i].msg %>
    </div>
    <% } %>
        <% } %>

但在其他情况下我可能有

req.flash('success', { msg: 'You have signed up successfully' });

您将如何调整上面的 Flash 渲染代码块,使其同时适用于“错误”和“成功”

我在网上找到了一些 .pug 代码(不是 EJS)(sahat hackathon-starter)来检查 messages.errors,但我不确定消息来自哪里!

if messages.errors
  .alert.alert-danger.fade.in
    button.close(type='button', data-dismiss='alert')
      i.fa.fa-times-circle-o
    for error in messages.errors
      div= error.msg
if messages.info
  .alert.alert-info.fade.in
    button.close(type='button', data-dismiss='alert')
      i.fa.fa-times-circle-o
    for info in messages.info
      div= info.msg
if messages.success
  .alert.alert-success.fade.in
    button.close(type='button', data-dismiss='alert')
      i.fa.fa-times-circle-o
    for success in messages.success
      div= success.msg

谢谢 托尼

最佳答案

<% if (errors.length > 0 ) { 
    for(var i=0; i < errors.length; i++) { %>
  <div class="alert alert-danger alert-dismissible fade show" role="alert">
      <button type="button" class="close" data-dismiss="alert" aria-label="Close">
          <span aria-hidden="true">&times;</span>
      </button>
      <%= errors[i].msg %>
  </div>
  <% } %>
      <% } %>


      <% if (success.length > 0 ) { 
        for(var i=0; i < success.length; i++) { %>
      <div class="alert alert-success alert-dismissible fade show" role="alert">
          <button type="button" class="close" data-dismiss="alert" aria-label="Close">
              <span aria-hidden="true">&times;</span>
          </button>
          <%= success[i].msg %>
      </div>
      <% } %>
          <% } %>

关于node.js - 将 Express-Flash 与 EJS 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45498596/

相关文章:

javascript - 无法重定向到jade页面 Node js

javascript - 如何在 extjs 的 View 表单中包含 javascript

swift - 获取用于图表的核心数据

node.js - EJS 包括相对于设置 View 路径的嵌套目录中的部分内容

javascript - EJS 噩梦——无法包含外部 View

javascript - Javascript 的 setInterval 是否在父对象被销毁时被杀死?

node.js - 用 proxyquire stub

javascript - 从 Node Js 套接字 io 数组获取所有套接字 id

html - 如何在rails4中的f.submit中给出图标类

javascript - 如何在ejs(javascriptmvc)中指定相对图像路径