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

Express+EJS项目报错:Posts未定义,已在index.js声明posts数组

解决EJS模板中「Posts is not defined」的引用错误

核心问题:变量大小写不匹配

JavaScript严格区分大小写,你在后端index.js中传递给模板的变量是小写的posts,但在EJS模板里遍历的是大写开头的Posts,这直接导致模板找不到对应变量,抛出未定义错误。

修复步骤

  1. 修正EJS模板中的变量名
    将index.ejs里的Posts改为posts,修正后代码如下:
<body>
    <h1>Quora Posts</h1>
    <% for(post of posts) { %>
        <div class="post">
            <h3 class="user">@ <%= post.username %></h3>
            <h4 class="content"><%= post.content %></h4>
        </div>
    <% } %>
</body>
  1. 修复视图引擎设置的拼写错误
    你的index.js中视图引擎设置代码有误,正确写法是view engine(原代码多了一个s),这个错误会导致Express无法正确识别EJS模板引擎,修正后代码:
app.set("view engine", "ejs");
  1. 可选:规范数组语法(非必要)
    posts数组最后一个元素后多余的逗号可以去掉,让代码更规范:
let posts = [
    {username : "Naved",content  : "I love coding"},
    {username : "Noman",content  : "I love studying"},
    {username : "Saimoon",content  : "I love cooking"}
];

内容的提问来源于stack exchange,提问作者Naved Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 12:56:09