Node.js查询MySQL数据无法渲染到EJS页面问题求助
问题排查与修复方案
我一眼就发现你的EJS模板代码里有两处关键错误,导致数据没法正常渲染:
错误点分析
- 语法不兼容:EJS是基于JavaScript的模板引擎,循环里不能用
int声明变量(这是Java/C#类语言的语法),得用JavaScript的let或var来声明。 - 数组访问错误:你传入的
Allo是一个数组(从控制台输出的result能确认),但你直接用Allo.name访问属性,这是不对的——必须通过索引i定位到数组里的单个对象,再访问对应属性,也就是Allo[i].name。
修改后的EJS代码
<table> <tr> <th>Name</th> <th>Date Formed</th> <th>Location</th> </tr> <% for(let i = 0; i < Allo.length; i++) { %> <tr> <td><%= Allo[i].name %></td> <td><%= Allo[i].form_date %></td> <td><%= Allo[i].location %></td> </tr> <% } %> </table>
另外,也可以用更简洁的forEach循环写法,可读性更高:
<table> <tr> <th>Name</th> <th>Date Formed</th> <th>Location</th> </tr> <% Allo.forEach(team => { %> <tr> <td><%= team.name %></td> <td><%= team.form_date %></td> <td><%= team.location %></td> </tr> <% }) %> </table>
这样修改后,你的团队数据就能正常渲染到表格里啦~
内容的提问来源于stack exchange,提问作者Yeshu 62
相关产品推荐
相关产品推荐

