如何解决语法错误:编译 ExpressJS (ejs) 文件过程中出现意外的标识符问题?


<% include partials/header.ejs %>
<div class="table-wrapper">
<% if (players.length > 0) {%>
<table class="table table-hovered">
<thead class="thead-dark">
<tr>
<th scope="col">ID</th>
<th scope="col">Image</th>
<th scope="col">First Name</th>
<th scope="col">Last Name</th>
<th scope="col">Position</th>
<th scope="col">Number</th>
<th scope="col">Username</th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody>
<% players.forEach((player, index) => { %>
<tr>
<th scope="row"><%= player.id %></th>
<td><img src="/assets/img/<%= player.image %>" class="rounded-circle player-img" alt=""></td>
<td><%= player.first_name %></td>
<td><%= player.last_name %></td>
<td><%= player.position %></td>
<td><%= player.number %></td>
<td>@<%= player.user_name %></td>
<td>
<a href="/edit/<%= player.id %>" target="_blank" rel="noopener" class="btn btn-sm btn-success">Edit</a>
<a href="/delete/<%= player.id %>" class="btn btn-sm btn-danger">Delete</a>
</td>
</tr>
<% }) %>
</tbody>
</table>
<% } else { %>
<p class="text-center">No players found. Go <a href="/add" >here</a> to add players.</p>
<% } %>
</div>
</div>
</body>
</html>

这是从终端运行 .ejs 文件后显示的错误,

语法错误:编译 ejs 时 C:\Users\A\Desktop\Ms\demo-appode-mysql-crud-app\views\index.ejs 中出现意外标识符 如果上述错误没有帮助,您可能需要尝试EJS-Lint: https://github.com/RyanZim/EJS-Lint 或者,如果您打算创建异步函数,请将async: true作为选项传递。 在新函数 (( at Template.compile (C:\Users\A\Desktop\Ms\demo-appode-mysql-crud-appode_modules\ejs\lib\ejs.js:626:12( at Object.compile (C:\Users\A\Desktop\Ms\demo-appode-mysql-crud-appode_modules\ejs\lib\ejs.js:366:16( at handleCache (C:\Users\A\Desktop\Ms\demo-appode-mysql-crud-appode_modules\ejs\lib\ejs.js:215:18( at tryHandleCache (C:\Users\A\Desktop\Ms\demo-appode-mysql-crud-appode_modules\ejs\lib\ejs.js:254:16( at View.exports.renderFile [as engine] (C:\Users\A\Desktop\Ms\demo-appode-mysql-crud-appode_modules\ejs\lib\ejs.js:459:10( at View.render (C:\Users\A\Desktop\Ms\demo-appode-mysql-crud-appode_modules\express\lib\view.js:135:8( at tryRender (C:\Users\A\Desktop\Ms\demo-appode-mysql-crud-appode_modules\express\lib\application.js:640:10( at Function.render (C:\Users\A\Desktop\Ms\demo-appode-mysql-crud-appode_modules\express\lib\application.js:592:3( at ServerResponse.render (C:\Users\A\Desktop\Ms\demo-appode-mysql-crud-appode_modules\express\lib\response.js:1012:7(

我是 expressjs 的新手,这是来自 GitHub 演示应用程序的代码。 如果这个问题得到解决,这将是一个很大的帮助。

https://github.com/tj/ejs阅读此文档,我认为您的 foreach 循环遇到一些问题,请先检查一下,然后再尝试一次。

<% for(var i=0; i<players.length;i++) { %>
<tr id="idrow_<%= players[i]._id%>">
<td id="id">
<%= players[i]._id%>
</td>
<td id="name">
<%= players[i].first_name%>
</td>
<td id="phone">
<%= players[i].last_name%>
</td>
<td id="email">
<%= players[i].position%>
</td>
<td id="vehicle">
<%= players[i].number%>
</td>
<td id="other">
<%= players[i].user_name%>
</td>
<td><button type="button" class="btn btn-secondary" id="edtbtn" onclick="edituser('<%= players[i]._id %>')" name="edit"><b>edit</b></button></td>
<td><button type="button" class="btn btn-secondary" id="delbtn" onclick="deleteuser('<%= players[i]._id %>')" name="delete">
<span><strong>Delete</strong></span>
</button>
</td>
</tr>
<% } %>

====

============================================================================

最新更新