[英]Node.js - Migrating from Swig to Nunjucks in Express
我有一個 Node.js 應用程序。 我一直在構建這個應用程序一段時間,它目前使用 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
...
我究竟做錯了什么? 正在尋求什么回調? 我知道一旦我開始使用 Nunjucks 引擎,我就會遇到一些語法錯誤。 但是,我只是想弄清楚如何加載 Nunjucks 引擎。
模板引擎通常有自己的配置方法。 對於 Nunjucks,你應該使用這個:
const nunjucks = require('nunjucks');
nunjucks.configure('views', {
express : app,
noCache : app.get('env') === 'development',
...
});
文檔在這里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.