【问题标题】:SyntaxError: missing ) after argument list in while compiling ejsSyntaxError: missing ) 在编译 ejs 时参数列表后
【发布时间】:2019-04-06 16:46:31
【问题描述】:

在编译 ejs 时,在参数列表后出现错误:缺少 )。 我尝试了很多次,但我找不到问题所在。

这是导致错误的 ejs。 这段代码有什么问题?

<%- include('../_layouts/adminheader') %>

<h2 class='page-title'>Products</h2>
<br>
<a href="/admin/products/add-product" class="btn btn-primary">Add a new product</a>
<br><br>

<% if (count > 0) { %>

<table class="table table-striped">
    <thead>
        <tr class="home">
            <th>Product</th>
            <th>Price</th>
            <th>Category</th>
            <th>Product Image</th>
            <th>Edit</th>
            <th>Delete</th>
        </tr>
    </thead>
    <tbody>
        <% products.forEach(function(product) { %>
        <tr>
            <td><%= product.title %></td>
            <td>$<%= parseFloat(product.price).toFixed(2) %></td>
            <td><%= product.category %></td>
            <td>
                <% if (product.image == "") { %>
                <img src="/images/noimage.png">
                <% } else { %>
                <img src="product_images/<%= product._id %>/<%= product.image %>">
                <% }%>
            </td>
            <td><a href="/admin/products/edit-product/<%= product._id %>">Edit</a></td>
            <td><a  href="/admin/products/delete-product/<%= product._id %>" onclick="return confirm('Are you sure you want to delete this item?');">Delete</a></td>
            <% } %>
        </tr>
        <% }); %>
    </tbody>>
</table>>
<% } else { %>
<h3 class="text-center">There are no products.</h3>>
<% } %>
<%- include('../_layouts/adminfooter') %>

【问题讨论】:

    标签: javascript syntax-error ejs


    【解决方案1】:

    在你关闭&lt;/tr&gt;之前,这条线

    <% } %>
    

    是多余的。因此,解析器将此解释为结束 forEach() 的回调函数,而不提供进一步的参数或关闭 函数调用的圆括号。 (如果你仔细想想,错误消息实际上很清楚发生了什么。:))

    顺便说一句,您在结束时还有两个多余的 &gt; &lt;/tbody&gt;&lt;/table&gt;

    这是一个可以工作的固定代码示例,您可以将其放入 https://ionicabizau.github.io/ejs-playground/

    <%
    var products = [
        {title: "foobar", category: "things", image: "", _id: 1, price: 0}
        ];
    var count = products.length;
    %>
    <h2 class='page-title'>Products</h2>
    <br>
    <a href="/admin/products/add-product" class="btn btn-primary">Add a new product</a>
    <br><br>
    
    <% if (products.length > 0) { %>
    
    <table class="table table-striped">
        <thead>
            <tr class="home">
                <th>Product</th>
                <th>Price</th>
                <th>Category</th>
                <th>Product Image</th>
                <th>Edit</th>
                <th>Delete</th>
            </tr>
        </thead>
        <tbody>
            <% products.forEach(function(product) { %>
            <tr>
                <td><%= product.title %></td>
                <td>$<%= parseFloat(product.price).toFixed(2) %></td>
                <td><%= product.category %></td>
                <td>
                    <% if (product.image == "") { %>
                    <img src="/images/noimage.png">
                    <% } else { %>
                    <img src="product_images/<%= product._id %>/<%= product.image %>">
                    <% }%>
                </td>
                <td><a href="/admin/products/edit-product/<%= product._id %>">Edit</a></td>
                <td><a  href="/admin/products/delete-product/<%= product._id %>" onclick="return confirm('Are you sure you want to delete this item?');">Delete</a></td>
            </tr>
            <% }); %>
        </tbody>
    </table>
    <% } else { %>
    <h3 class="text-center">There are no products.</h3>>
    <% } %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 1970-01-01
      • 2019-05-27
      • 2013-03-11
      • 2018-06-15
      相关资源
      最近更新 更多