Node.JS Consolidate和Swig

时间:2013-03-13 00:06:43

标签: node.js express swig-template

我正在尝试使用节点(express v3.1.0)设置Consolidate,以使用Swig。我一直收到错误

  

错误:无法找到模块'swig'       在Function.Module._resolveFilename(module.js:338:15)       在Function.Module._load(module.js:280:25)       在Module.require(module.js:362:17)       at require(module.js:378:17)       在Function.exports.swig.render(/home/jamie/node_modules/consolidate/lib/consolidate.js:237:50)       在/home/jamie/node_modules/consolidate/lib/consolidate.js:144:25       at /home/jamie/node_modules/consolidate/lib/consolidate.js:97:5       在fs.readFile(fs.js:176:14)       在Object.oncomplete(fs.js:297:15)

在顶部,我像这样设置

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

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

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

然后我提出这样的要求:

app.get('/', function(req, res){
    res.render('home', {
        title: "home"
    });
});

我在根目录/ views

中有一个home.html模板

我的根目录是/ home / jamie / hello-world。我在这里做错了什么?

修改 顺便说一句,console.log(cons.swig)确实返回了一些内容。

{ [Function] render: [Function] }

所以它绝对那里

1 个答案:

答案 0 :(得分:11)

您是否安装了swig套餐?从自述文件:

  

注意:您仍然必须安装要使用的引擎,将它们添加到package.json依赖项中。