7

我正在尝试使用节点(express v3.1.0)设置合并,以使用 Swig。我不断收到错误

错误:在 Module.require (module.js:362:17) 的 Function.Module._load (module.js:280:25) 的 Function.Module._resolveFilename (module.js:338:15) 中找不到模块“swig” ) 在 Function.exports.swig.render (/home/jamie/node_modules/consolidate/lib/consolidate.js:237:50) 在 /home/jamie/node_modules/consolidate/ 的 require (module.js:378:17) lib/consolidate.js:144:25 at /home/jamie/node_modules/consolidate/lib/consolidate.js:97:5 at fs.readFile (fs.js:176:14) at 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"
    });
});

我在根目录/视图中有一个模板 home.html

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

编辑 顺便说一句,console.log(cons.swig) 确实返回了一些东西。

{ [Function] render: [Function] }

所以它肯定在那里

4

1 回答 1

11

你安装swig包了吗?从自述文件:

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

于 2013-03-13T00:26:27.470 回答