无法在EJS文件中查看arrays数据

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

这是我的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 

为什么会发生? 什么是错误?

看起来你犯了一个错字:

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

我假设你的意思是:

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

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

正如错误信息中所build议的,考虑使用EJS-Lint来防止这样的小错误,因为默认的错误信息根本没有帮助,而且为什么你感到困惑是可以理解的。