簡體   English   中英

Node.js - 在 Express 中從 Swig 遷移到 Nunjucks

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM