当我向Coffeescript中实现的node.js服务器发送请求时,我收到Error: cannot find module 'hogan'
:
https://gist.github.com/wmayner/306c89d7f8fbeed3f098
我已经安装了依赖项hogan.js
,consolidate
和express
。
我几乎完全从consolidate
的文档(下面转载)中复制了示例代码,因此我无法查看此错误的来源。它看起来应该有效。
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
并且我得到了相同的错误。)
答案 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'