首页 > 解决方案 > 我试图从后端显示错误但错误发生 EJS

问题描述

当我尝试使用从后端显示错误消息时,EJS我遇到了一些错误!有人可以帮我解决这个问题吗???

这是我home.ejs文件中的一个片段:-

          <% if (err) { %>
          <!-- contact-warning -->
            <div id="message-warning">
              <p><%= err.msg %></p>
            </div>
          <% } %>

          <% if (success) { %>
          <!-- contact-success -->
            <div id="message-success">
              <i class="fa fa-check"></i> <br />
              <p><%= success.msg %></p>
            </div>
          <% } %>

这是我的node代码片段

if (error) {
      console.log(error);
      let err = {
        msg: "Email Sent failed",
      };
      res.render("home", { err });
    } else {
      let success = {
        msg: "Your message was sent, thank you!",
      };
      res.render("home", { success });
    }

我收到了这个错误 err is not defined

标签: javascriptnode.jsexpressejs

解决方案


您也可以使用typeofinif而无需将其他变量传递给您的ejs.

<% if (typeof err !== "undefined") { %>
    <div id="message-warning">
    <p><%= err.msg %></p>
    </div>
<% } %>

<% if (typeof success !== "undefined") { %>
    <div id="message-success">
    <i class="fa fa-check"></i> <br />
    <p><%= success.msg %></p>
    </div>
<% } %>

您可以使用原始逻辑而不传递 null。

if (error) {
    console.log(error);
    let err = {
        msg: "Email Sent failed",
    };
    res.render("home", {
        err
    });
} else {
    let success = {
        msg: "Your message was sent, thank you!",
    };
    res.render("home", {
        success
    });
}

推荐阅读