EJS错误:未定义; 找不到模块'undefined'; 找不到模块'ejs'; 身体没有定义

在O'Reilly的书“Node.js Up and Running”第2章中,我对“Let's build twitter”节点应用感到非常沮丧。

我从来没有使用EJS,甚至不知道什么扩展名为EJS文件。 另外,我不能让我的应用程序工作得到这些各种错误:

  • 部分没有定义
  • 无法find模块'未定义'在做app.render('索引'…
  • 找不到模块'ejs'
  • 身体没有定义

这更令人沮丧,因为这只是第2章,而且我想知道是不是最好换用另一种材料呢?

如果您也对O'Reilly正在运行的书中的“Let's build twitter”编程教程感到沮丧,下面是使这个“app”起作用的补充。

先决条件:

  1. 要使此应用程序正常工作,请确保您有Express <3.X版本。 事实上,在版本3.0和更高版本中,他们删除了“部分”支持,现在是模板特定的。 所以请确保安装版本2.x: npm install express@2.x
  2. 本书不提供关于如何使用EJS文件的任何信息。 经过一番研究,为了让快车明白和parsingEJS文件,你必须安装… 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', ...)

如果在那个时候它不起作用,或者还不清楚,那么没有什么比看代码更好的了。 叉或下载应用程序在这里 。

希望它可以帮助其他读者。

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

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

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

我也很沮丧,所以我build立了一个工作示例 – 可在这里下载:

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

O'Reilly Book Node.js启动和运行 – 第1部分=>第2章做有趣的事情=>让我们来构buildTwitter(工作代码为Express 3.0和ejsembedded式JavaScript,无节点的节点渲染器)下载源: https://github。 COM / thinkphp /快递鸣叫

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

问候,Ningappa