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”起作用的补充。
先决条件:
- 要使此应用程序正常工作,请确保您有Express <3.X版本。 事实上,在版本3.0和更高版本中,他们删除了“部分”支持,现在是模板特定的。 所以请确保安装版本2.x:
npm install express@2.x
- 本书不提供关于如何使用EJS文件的任何信息。 经过一番研究,为了让快车明白和parsingEJS文件,你必须安装… ejs。 像其他任何模块一样,安装非常简单:
npm install ejs
。
这肉:
- 对于这个应用程序,文件夹
views
和partials
中的所有文件应具有扩展名.ejs - 您安装了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立了一个工作示例 – 可在这里下载:
O'Reilly Book Node.js启动和运行 – 第1部分=>第2章做有趣的事情=>让我们来构buildTwitter(工作代码为Express 3.0和ejsembedded式JavaScript,无节点的节点渲染器)下载源: https://github。 COM / thinkphp /快递鸣叫
我已经安装了express @ 4并解决了问题。 如果我们在编辑器外面写任何代码,它会显示错误。
问候,Ningappa