5

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

我从未使用过 EJS,甚至不知道为 EJS 文件添加什么扩展名。另外,我无法让我的应用程序工作得到这些不同的错误:

  • 部分未定义
  • 找不到模块“未定义”在哪里做 app.render('index'...
  • 找不到模块“ejs”
  • 身体未定义

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

4

6 回答 6

10

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

先决条件:

  1. 要使此应用程序正常工作,请确保您拥有 Express < 3.X 的版本。事实上,在 3.0 及更高版本中,他们删除了“部分”支持,现在是特定于模板的。因此,请确保安装 2.x 版:npm install express@2.x
  2. 这本书没有提供任何关于如何使用 EJS 文件的信息。经过一番研究,为了让 express 理解和解析 EJS 文件,您必须安装...ejs。与任何其他模块一样,安装非常简单:npm install ejs.

这肉:

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

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

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

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

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

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

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

于 2012-07-29T22:30:40.863 回答
2

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

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

于 2012-09-04T19:55:04.270 回答
1

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

于 2017-02-26T11:08:14.700 回答
0

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

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

于 2012-08-11T10:41:22.550 回答
0

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

于 2013-03-10T20:37:47.633 回答
-1

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

问候,宁加帕

于 2015-12-17T13:02:06.067 回答