Node.js – 在Swift中从Swig迁移到Nunjucks
我有一个Node.js应用程序。 我一直在构build这个应用程序一段时间,它目前使用Swig作为视图引擎。 我使用下面的代码将其设置为视图引擎:
// Use swig. const swig = require('swig'); app.engine('html', swig.renderFile); if (app.get('env') === 'development') { swig.setDefaults({ cache: false }); } app.set('views', path.join(__dirname, '../views')); app.set('view engine', 'html');
这一直运作良好。 然而,我有一些停机时间,所以我认为现在是移民到Nunjucks的好时机。 所以,我用上面的代替了:
// Use nunjucks. const nunjucks = require('nunjucks'); app.engine('html', nunjucks.renderFile); if (app.get('env') === 'development') { nunjucks.setDefaults({ cache: false }); } app.set('views', path.join(__dirname, '../views')); app.set('view engine', 'html');
当我启动我的网站时,我现在得到一个错误。 错误是:
throw new Error('callback function required'); ^ Error: callback function required at EventEmitter.engine (C:\MyProject\node_modules\express\lib\application.js:294:11) at EventEmitter.module.exports (C:\MyProject\src\index.js:16:9) at EventEmitter.configure ...
我究竟做错了什么? 什么callback正在追捧? 一旦我开始使用Nunjucks引擎,我知道我会有一些语法错误。 但是,我只是想弄清楚如何获得Nunjucks引擎。
模板引擎通常有自己的configuration方法。 对于Nunjucks,你应该使用这个:
const nunjucks = require('nunjucks'); nunjucks.configure('views', { express : app, noCache : app.get('env') === 'development', ... });
文档在这里 。