2016-12-05 26 views
1

我使用的Node.js和我通過firstRow對象在res.Render();不能夠查看陣列數據在EJS文件

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

爲什麼會發生這種情況?什麼是錯誤?

+0

將(var i = 0; i '變爲'<%for(var i = 0; i '讓我知道這是否有效。 – Aurora0001

+0

謝謝。愚蠢的錯誤。 –

+0

好吧,只是把答案 –

回答

2

看來,你做就行了錯字:

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

我假設你的意思是:

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

注意開括號({),這是必需的,因爲你再在另一條線上緊挨着大括號。

如錯誤消息中的建議,考慮使用EJS-Lint來防止這樣的小錯誤,因爲默認錯誤消息根本沒有幫助,並且可以理解您爲什麼會感到困惑。