Express + Consolidate + Hogan:`错误:找不到模块'hogan'`代码直接来自整合文档

时间:2013-03-14 06:10:59

标签: node.js express coffeescript hogan.js

当我向Coffeescript中实现的node.js服务器发送请求时,我收到Error: cannot find module 'hogan'

https://gist.github.com/wmayner/306c89d7f8fbeed3f098

我已经安装了依赖项hogan.jsconsolidateexpress

我几乎完全从consolidate的文档(下面转载)中复制了示例代码,因此我无法查看此错误的来源。它看起来应该有效。

来自consolidate docs

var express = require('express')
  , cons = require('consolidate')
  , app = express();

// assign the swig engine to .html files
app.engine('html', cons.swig);

// set .html as the default extension 
app.set('view engine', 'html');
app.set('views', __dirname + '/views');

我也尝试将'hogan = require('hogan.js')'声明为依赖。

任何人都知道为什么会这样?


注意:上面的要点与consolidate文档的不同之处在于我将view engine设置为hogan而不是html。这是因为我宁愿使用.hogan而不是.html作为我的模板文件扩展名(我已经尝试了.html并且我得到了相同的错误。)

1 个答案:

答案 0 :(得分:1)

您的要点将hogan设置为view engine,但这应该像合并文档中的html一样:

// tell Express to use Consolidates 'hogan' renderer for .html templates
engines = require 'consolidate'
engine = 'hogan'
app.engine 'html', engines[engine]

// tell Express to use '.html' as extension to find views with .render()
app.set 'view engine', 'html'

编辑:意识到您可能希望使用.hogan作为模板文件的扩展名,您可以使用此代码:

app.engine 'hogan', engines[engine]
app.set 'view engine', 'hogan'