【问题标题】:EJS errors: not defined; can't find module 'undefined'; can't find module 'ejs'; body is not definedEJS 错误:未定义;找不到模块“未定义”;找不到模块“ejs”;身体未定义
【发布时间】:2012-07-27 15:39:09
【问题描述】:

我对 O'Reilly 书籍“Node.js Up And Running”第 2 章中的“让我们构建 twitter”节点应用程序感到非常沮丧。

我从未使用过 EJS,甚至不知道为 EJS 文件添加什么扩展名。另外,我无法让我的应用正常运行,出现这些错误:

  • 部分未定义
  • 在执行 app.render('index'...
  • 找不到模块“ejs”
  • 正文未定义

这更令人沮丧,因为它只有第 2 章,我想知道是否最好切换到另一种材料......

【问题讨论】:

  • 由于您没有提供任何信息,因此无法为其他任何人回答...:/
  • 我只是想帮助像我这样正在阅读这本书但无法让他们的应用正常工作的人。

标签: node.js express ejs


【解决方案1】:

如果您也对 O'Reilly Up and running 书籍第 2 章中的“让我们构建 twitter”编程教程感到沮丧,这里是使这个“应用程序”工作的补充。

先决条件:

  1. 要使此应用程序正常运行,请确保您的 Express npm install express@2.x
  2. 这本书没有提供任何关于如何使用 EJS 文件的信息。经过一番研究,为了让 express 理解和解析 EJS 文件,您必须安装...ejs。 与任何其他模块一样,安装非常简单:npm install ejs

肉:

  1. 对于这个应用程序,viewspartials 文件夹中的所有文件都应具有扩展名 .ejs
  2. 您安装了 EJS,但您必须告诉 express 在 app.render() 函数中使用 EJS 作为模板格式 你有两种方法可以做到:

(1) 您将 EJS 设置为默认模板引擎,然后告诉 express 渲染您的文件 app.set('view engine', 'ejs');

res.render('index', ...)

(2) 你只需告诉app.render() 函数使用EJS,express 会处理它

res.render('index.ejs', ...)

如果此时它不起作用或仍然不清楚,没有什么比查看工作代码更好的了。 fork 或下载应用程序here

希望对其他读者有所帮助。

【讨论】:

  • ejs 没有删除部分支持吗?我好像记得在 google 群里问过,他们说有。
  • 嗯,我使用的是 express 2.5.11 和 ejs 0.8.0,以确保使用与本书中的 same 版本。但在 express 3.x 中,不支持 partials。
  • Handlebars 支持带有 express3 的部分。我现在正在使用它。
  • 这个例子在书上是失败的。没有关于如何工作、必要的模块、保存文件的位置以及如何命名它们的说明。我不得不用小胡子想出一个不同的版本。失望。
【解决方案2】:

Express v. 3 中删除了对 EJS 的支持。我使用 Express 3 和 Jade 模板构建了另一个示例:

https://github.com/nosolopau/node-up-and-running-chirpie-express-3

【讨论】:

    【解决方案3】:

    在当前项目目录下安装express@4,解决了我的问题!

    【讨论】:

      【解决方案4】:

      我也很沮丧,所以我构建了一个工作示例 - 可在此处下载:

      https://github.com/iotaweb/node-up-and-running-chirpie

      【讨论】:

        【解决方案5】:

        O'Reilly Book Node.js 启动和运行 - 第 1 部分 => 第 2 章做有趣的事情 => 让我们构建 Twitter(Express 3.0 的工作代码和用于节点渲染器的 ejs 嵌入式 JavaScript 没有部分) 下载来源:https://github.com/thinkphp/express-tweets

        【讨论】:

          【解决方案6】:

          我已经安装了 express@4 并解决了问题。 如果我们在编辑器之外编写任何代码,它将显示该错误。

          问候, 宁加巴

          【讨论】:

            猜你喜欢
            • 2015-12-12
            • 1970-01-01
            • 2016-04-11
            • 2019-10-14
            • 2011-12-06
            • 1970-01-01
            • 1970-01-01
            • 2014-03-13
            • 1970-01-01
            相关资源
            最近更新 更多