2016-09-12 19 views
1

私はNode.jsアプリケーションを持っています。私はしばらくの間、このアプリケーションを構築してきましたが、現在はビューエンジンとしてSwigを使用しています。私は次のコードを使用してビューエンジンとして設定しています:Node.js - SwigからExpressのNunjucksへの移行

// 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エンジンをロードする方法を理解しようとしています。

答えて

1

通常、テンプレートエンジンには独自の設定方法があります。

const nunjucks = require('nunjucks'); 

nunjucks.configure('views', { 
    express : app, 
    noCache : app.get('env') === 'development', 
    ... 
}); 

は、ドキュメントhere:Nunjucksについて、あなたはこれを使用する必要があります。

関連する問題