javascript - 在其他页面上没有问题的 EJS 部分在一页上抛出 500 错误

标签 javascript node.js ejs

我有一个页 footer 分:

    </main>
        <footer class="pt-3 container">
                <p id="copyright" class="">
                    Copyright 2020 Robert Greenstreet
                </p>
            <!-- <script src="/javascripts/jquery-ui.min.js" ></script> -->
            <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
            <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
            <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
            <script src="/javascripts/script.js" type="text/javascript"></script>

            <% if(page && == 'ownerDashboard') { %>
                <script src="/javascripts/canvasRender.js"></script>
            <% } %>
            <script>

            </script>
        </footer>
    </body>
</html>

它在每个其他页面上都能正常加载,但在这个特定页面上,只有当我注释掉那个小 if block 时,它才会加载。就像我没有传入 page 变量一样。但即使我没有,它应该仍然可以工作,因为 && 运算符,对吗?

这是页面 EJS 文件:

<%- include("../partials/header") %>

<div class="container mt-5">
    <h1>
      <%= currentCompany.name %>
    </h1>
    <div class="row shadow-md">
      <div class="col">
        <table class="table">
          <!-- <thead>
            <tr>
              <th scope="col" class="border-0 bg-light"></th>
            </tr>
          </thead> -->
          <tbody>
            <tr>
              <td class="border-0 align-middle">
                Locations
              </td>
              <td class="border-0 align-middle">
                <%= currentCompany.locations.length %>
              </td>
            </tr>
            <tr>
              <td class="border-0 align-middle">
                Total Admins
              </td>
              <td class="border-0 align-middle">
                <% let totalAdmins = 0 %>
                <% for (let location of currentCompany.locations) { %>
                  <% totalAdmins += location.contacts.length %>
                <% } %>
                <%= totalAdmins %>
              </td>
            </tr>
            <tr>
              <td class="border-0 align-middle">
                Total Users
              </td>
              <td class="border-0 align-middle">
                <%= userCount %>
              </td>
            </tr>
            <tr>
              <td class="border-0 align-middle">
                Total Forms
              </td>
              <td class="border-0 align-middle">
                <% let totalForms = 0 %>
                <% for (let location of currentCompany.locations) { %>
                  <% totalForms += location.contacts.length %>
                <% } %>
                <%= totalForms %>
              </td>
            </tr>
          </tbody>
        </table>
      </div>
    </div>
</div>
<script>

</script>
<%- include("../partials/footer") %>

所有这些都加载得很好,只是页 footer 分

这是 Node render 调用(假设 data 对象中的其他项目没有任何问题:

res.render('../views/company/profile.ejs', {currentCompany, userCount, page: 'companyProfile', title: 'Company Profile'})

你知道为什么它会给我带来麻烦吗?就像我说的,它在任何其他页面上都可以正常工作。我尝试过 ejs-lint 但我不知道如何让它真正向我展示任何有用的东西。他们的 NPM 自述文件毫无用处。

最佳答案

此代码的第二部分有错误:

if (page && == 'ownerDashboard')

应该是

if (page && someVariable == 'ownerDashboard')

或者如果是这样的话:

if (page && page == 'ownerDashboard')

只有在定义页面时才会出现错误,这就是其他页面正确加载的原因。

关于javascript - 在其他页面上没有问题的 EJS 部分在一页上抛出 500 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61133124/

相关文章:

javascript - 渲染 THREE.js 后无法添加到场景

javascript - 添加脚本代码到Wordpress

javascript - 生成jsdoc文档

javascript - 有没有办法访问 DOM 服务器端?

html - 如何链接位于另一个文件夹中的 HTML 文件中的 CSS 文件

javascript - 理解 javascript 闭包

javascript - 如何通过javascript在crm中的选择列表中保存数据

node.js - 如何在同一 IDE 上构建/运行 Golang 和 SPA 框架,例如 ReactJs/VueJs?

node.js - 如何创建带有字典列表的 Mongoose 模型?

javascript - 是否可以缩小 ejs 文件中的 JS 代码?