You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express路由向EJS传数据时出现ReferenceError问题求助

问题解决:Express向EJS传递数据出现ReferenceError

核心问题

你的路由代码中,res.render的模板路径多了开头的斜杠,导致数据无法正确传递到EJS模板中。

修正步骤

修改Express路由中的res.render调用:

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});
});

额外优化建议

为避免类似未定义错误,建议在EJS模板中添加存在性判断,增强代码健壮性:

<% if (employees && employees.length) { %>
    <% employees.map((employee) => { %>
        <tr>
            <td><%=employee.email%></td>
            <td><%=employee.role%></td>
        </tr>
    <% }) %>
<% } else { %>
    <tr>
        <td colspan="2">暂无员工数据</td>
    </tr>
<% } %>

原因说明

Express中使用res.render时,模板名称不需要以斜杠开头——因为你已经通过app.set('views')指定了模板文件的根目录,开头的斜杠会干扰Express对模板路径的解析,最终导致传递的数据无法被EJS模板识别。

内容的提问来源于stack exchange,提问作者code writer 3000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 06:10:39