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

Tin*_*nou 5 ejs node.js express

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

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

  • 部分未定义
  • 无法找到模块'undefined'在哪里做app.render('index'...
  • 找不到模块'ejs'
  • 身体没有定义

它更令人沮丧,因为它只是第2章,我想知道切换到另一种材料是不是更可取的......

Tin*_*nou 10

如果您对O'Reilly Up和正在运行的书中的第2章中的"Let's build twitter"编程教程感到沮丧,那么这就是使这个"app"工作的补充.

先决条件:

  1. 要使此应用程序正常运行,请确保您拥有Express <3.X版本.事实上,在3.0及更高版本中,他们删除了"部分"支持,现在是模板特定的.因此,请确保安装版本2.x:npm install express@2.x
  2. 本书未提供有关如何使用EJS文件的任何信息.经过一番研究,为了快速理解和解析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', ...)

如果在那一点它不起作用或者仍然不清楚,没有比看工作代码更好的了.在这里分叉或下载应用程序.

希望它能帮助其他读者.