我试图将数据从Express路由传递到EJS,但我一直在获取一个ReferenceError。这个页面应该显示员工的电子邮件地址和他们的角色:
<%- include("./partials/header"); -%>
<body class="bg-slate-900 mx-4">
<%- include("./partials/navigation"); -%>
<div class="text-white">
<table class="text-white">
<thead>
View Employees
</thead>
<th>
Email
</th>
<th>
Role
</th>
<% employees.map((employee) => { %>
<tr>
<td><%=employee.email%></td>
<td><%=employee.role%></td>
</tr>
<% }) %>
</table>
</div>
</body>以下是速递路由代码:
app.get('/view_employees', (req, res) => {
const employees = [
{email: 'abrown@pd.com', role: 'Administrator'},
{email: 'jhoffman@pd.com', role: 'HR Representative'},
{email: 'tcooper@pd.com', role: 'HR Representative'},
{email: 'vsanders@pd.com', role: 'Employee'},
{email: 'crollins@pd.com', role: 'Employee'},
{email: 'pjackson@pd.com', role: 'Employee'},
{email: 'xwoods@pd.com', role: 'Employee'},
];
res.render('/view_employees', {employees: employees});
});这是完全错误。Tl;dr雇员在EJS中没有定义:
ReferenceError: A:\Node\workplace_incident_reporter\src\views\view_employees.ejs:15
13| Role
14| </th>
>> 15| <% employees.map((employee) => { %>
16| <tr>
17| <td><%=employee.email%></td>
18| <td><%=employee.role%></td>
employees is not defined
at eval ("A:\\Node\\workplace_incident_reporter\\src\\views\\view_employees.ejs":16:8)
at view_employees (A:\Node\workplace_incident_reporter\node_modules\ejs\lib\ejs.js:703:17)
at tryHandleCache (A:\Node\workplace_incident_reporter\node_modules\ejs\lib\ejs.js:274:36)
at exports.renderFile [as engine] (A:\Node\workplace_incident_reporter\node_modules\ejs\lib\ejs.js:491:10)
at View.render (A:\Node\workplace_incident_reporter\node_modules\express\lib\view.js:135:8)
at tryRender (A:\Node\workplace_incident_reporter\node_modules\express\lib\application.js:657:10)
at Function.render (A:\Node\workplace_incident_reporter\node_modules\express\lib\application.js:609:3)
at ServerResponse.render (A:\Node\workplace_incident_reporter\node_modules\express\lib\response.js:1039:7)
at A:\Node\workplace_incident_reporter\app.js:18:9
at Layer.handle [as handle_request] (A:\Node\workplace_incident_reporter\node_modules\express\lib\router\layer.js:95:5)发布于 2022-10-24 16:07:20
这是确保您使用nodemon app.js而不是node app.js测试应用程序的另一种情况。
https://stackoverflow.com/questions/74183369
复制相似问题