在快速应用程序中使用Nunjucks

我有一个包含Express的Node应用程序。 到目前为止,我一直在使用Swig作为视图引擎。 我configuration这个视图引擎是这样的:

app.engine('html', swig.renderFile); app.set('views', path.join(__dirname, '../views')); app.set('view engine', 'html'); 

这种方法已经为我工作。 但是,既然Swig已经被弃用了,我正试图搬到Nunjucks。 为了做到这一点,我做了以下工作:

 nunjucks.configure('views', { autoescape: true, cache: false, express: app }); app.engine('html', nunjucks.render); app.set('views', path.join(__dirname, '../views')); app.set('view engine', 'html'); 

这不起作用。 我得到一个运行时错误,但我不知道实际抛出什么错误。 在试图加载最基本的视图,我试图加载下面的HTML页面:

 <!DOCTYPE html> <html lang="en"> <head> </head> <body> <h1>Hello</h1> </body> </html> 

这是一个非常基本的HTML视图,不使用任何模板。 我只是想能够加载一个HTML视图与nunjucks设置为视图引擎。 即使这样,我仍然得到一个错误。

我可以看到渲染函数 ,有一个callback。 它看起来像callback有一个错误的对象,我可以看看。 但是,我不知道如何在app.engine('html', nunjucks.render);行中实际使用该callbackapp.engine('html', nunjucks.render);

任何见解将不胜感激

删除这些行:

 app.engine('html', nunjucks.render); app.set('views', path.join(__dirname, '../views')); app.set('view engine', 'html'); 

更新的代码:

 var nunjucks = require('nunjucks'); var app = express(); // looks for html in views folder relative to current working directory nunjucks.configure('views', { autoescape: true, cache: false, express: app }); app.get('/', function(req, res) { res.render('index.html'); }); 

对于Express 4.15.3,我需要使用Nunjucks 3.0.1进行以下configuration。

 // view engine setup app.set('views', path.join(__dirname, 'views')); nunjucks.configure('views', { autoescape: true, cache: false, express: app }); app.set('view engine', 'html');