【发布时间】:2021-02-26 16:48:59
【问题描述】:
我是编程新手。我被渲染 JavaScript 变量卡住了。
你能给我一个解决的建议吗?
在.ejs 内部,我正在尝试迭代表
<tr>
<% bodies.forEach(function(body){ %>
<% try (typeof body.rowNum !== 'undefined') { %>
<th scope="row"><%= body.rowNum %></th>
<% if(typeof body.tick !== 'undefined') { %>
<td><%= body.tick %></td>
<% } %>
<% if(typeof body.exDiv !== 'undefined') { %>
<td><%= body.exDiv %></td>
<% } %>
<% if(typeof body.divYield !== 'undefined') { %>
<th><%= body.divYield %></th>
<% } %>
<% if(typeof body.qty !== 'undefined') { %>
<th><%= body.qty %></th>
<% } %>
<% if(typeof body.total !== 'undefined') { %>
<th><%= body.total %></th>
<% } %>
<% } %>
<% }) %>
</tr>
下面是.js文件:
app.post("/", function(req, res){
var bodies = {rowNum: 1, tick: tick, exDiv: exDiv, divYield: dividend, qty: 50, total: total}
res.render("list", {bodies:bodies});
});
我收到的错误消息
SyntaxError: Unexpected token '(' in C:\Users\yoonl\Desktop\DividendTracker\views\list.ejs 同时编译 ejs
如果上述错误没有帮助,您可能想尝试 EJS-Lint:
https://github.com/RyanZim/EJS-Lint
或者,如果您打算创建一个异步函数,请将 async: true 作为选项传递。
在新函数 ()
在 Template.compile (C:\Users\yoonl\Desktop\DividendTracker\node_modules\ejs\lib\ejs.js:661:12)
在 Object.compile (C:\Users\yoonl\Desktop\DividendTracker\node_modules\ejs\lib\ejs.js:396:16)
在 handleCache (C:\Users\yoonl\Desktop\DividendTracker\node_modules\ejs\lib\ejs.js:233:18)
在 tryHandleCache (C:\Users\yoonl\Desktop\DividendTracker\node_modules\ejs\lib\ejs.js:272:16)
在 View.exports.renderFile [作为引擎] (C:\Users\yoonl\Desktop\DividendTracker\node_modules\ejs\lib\ejs.js:489:10)
在 View.render (C:\Users\yoonl\Desktop\DividendTracker\node_modules\express\lib\view.js:135:8)
在 tryRender (C:\Users\yoonl\Desktop\DividendTracker\node_modules\express\lib\application.js:640:10)
在 Function.render (C:\Users\yoonl\Desktop\DividendTracker\node_modules\express\lib\application.js:592:3)
在 ServerResponse.render (C:\Users\yoonl\Desktop\DividendTracker\node_modules\express\lib\response.js:1012:7)
[问题]我不熟悉async,如果可以通过添加异步功能解决以下问题,您能否分享一个如何使用它的示例?
谢谢,
【问题讨论】: