【问题标题】:Not able to view the array data in an EJS file无法查看 EJS 文件中的数组数据
【发布时间】:2017-04-20 03:13:47
【问题描述】:

我使用 Node.js,并在 res.Render(); 中传递 firstRow 对象

这是我的index.ejs

<html>
<head>
    <title>DropDown</title>
</head>
<body>
    <form action="/submit" method="post">
        <table name="choice">
            <% for(var i=0; i<firstRow.length-1; i++) %>
            <tr>
                <td><%= firstRow[i] %></td> 
            </tr>
            <% } %>
        <input type="submit" name="submit">
    </form>     
</body>

当我运行这个时,我得到一个错误:

SyntaxError: Missing catch or finally after try in /Users/MithilAmin/Desktop/excel demo/views/index.ejs while compiling ejs

If the above error is not helpful, you may want to try EJS-Lint:
https://github.com/RyanZim/EJS-Lint
   at Object.compile (/Users/MithilAmin/Desktop/excel demo/node_modules/ejs/lib/ejs.js:498:12)
   at Object.compile (/Users/MithilAmin/Desktop/excel demo/node_modules/ejs/lib/ejs.js:313:16)
   at handleCache (/Users/MithilAmin/Desktop/excel demo/node_modules/ejs/lib/ejs.js:169:18)
   at View.exports.renderFile [as engine] (/Users/MithilAmin/Desktop/excel demo/node_modules/ejs/lib/ejs.js:381:14)
   at View.render (/Users/MithilAmin/Desktop/excel demo/node_modules/express/lib/view.js:126:8)
   at tryRender (/Users/MithilAmin/Desktop/excel demo/node_modules/express/lib/application.js:639:10)
   at EventEmitter.render (/Users/MithilAmin/Desktop/excel demo/node_modules/express/lib/application.js:591:3)
   at ServerResponse.render (/Users/MithilAmin/Desktop/excel demo/node_modules/express/lib/response.js:960:7)
   at /Users/MithilAmin/Desktop/excel demo/dropdown.js:40:17
   at /Users/MithilAmin/Desktop/excel demo/node_modules/excel/excelParser.js:163:3

为什么会这样?错误是什么?

【问题讨论】:

  • &lt;% for(var i=0; i&lt;firstRow.length-1; i++) %&gt; 更改为 &lt;% for(var i=0; i&lt;firstRow.length-1; i++) { %&gt; 并告诉我是否可行。
  • 好的,回答一下

标签: javascript node.js express ejs


【解决方案1】:

看来你在这行打错字了:

<% for(var i=0; i<firstRow.length-1; i++) %>

我假设你的意思是:

<% for(var i=0; i<firstRow.length-1; i++) { %

注意左大括号 ({),这是必需的,因为您在另一行上有一个右大括号。

按照错误消息中的建议,考虑使用EJS-Lint 来防止此类小错误,因为默认的错误消息根本没有帮助,而且您会感到困惑是可以理解的。

【讨论】:

    猜你喜欢
    • 2021-02-12
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多