我对 O'Reilly 的书“Node.js Up And Running”第 2 章中的“让我们构建 twitter”节点应用程序感到非常沮丧。
我从未使用过 EJS,甚至不知道为 EJS 文件添加什么扩展名。另外,我无法让我的应用程序工作得到这些不同的错误:
- 部分未定义
- 找不到模块“未定义”在哪里做 app.render('index'...
- 找不到模块“ejs”
- 身体未定义
更令人沮丧,因为它只有第 2 章,我想知道是否最好切换到另一种材料......
如果您也对 O'Reilly Up and running 书籍第 2 章中的“让我们构建 twitter”编程教程感到沮丧,这里是使这个“应用程序”工作的补充。
先决条件:
npm install express@2.x
npm install ejs
.这肉:
views
都应partials
具有扩展名 .ejsapp.render()
函数中的模板格式您有两种方法可以做到:(1) 您将 EJS 设置为默认模板引擎,然后告诉 express 渲染您的文件
app.set('view engine', 'ejs');
res.render('index', ...)
(2) 你只需要告诉app.render()
函数使用 EJS,express 会处理它
res.render('index.ejs', ...)
如果此时它不起作用或仍然不清楚,没有什么比查看工作代码更好的了。在此处分叉或下载应用程序。
希望对其他读者有所帮助。
Express v. 3 中删除了对 EJS 的支持。我使用 Express 3 和 Jade 模板构建了另一个示例:
https://github.com/nosolopau/node-up-and-running-chirpie-express-3
在当前项目目录下安装 express@4,解决了我的问题!
我也很沮丧,所以我构建了一个工作示例 - 可在此处下载:
O'Reilly Book Node.js 启动和运行 - 第 1 部分 => 第 2 章做有趣的事情 => 让我们构建 Twitter(Express 3.0 的工作代码和用于节点渲染器的 ejs 嵌入式 JavaScript 没有部分)下载源:https://github。 com/thinkphp/express-tweets
我已经安装了 express@4 并解决了问题。如果我们在编辑器之外编写任何代码,它将显示该错误。
问候,宁加帕