nodejs expressのフレームワークの一つの工程の中でejsのモジュ-ルとjadeのモジュ-ルジュ-ルを同時に使用します.

1918 ワード

いくつかのプロジェクトでは、たとえば、他の人のプロジェクトを引き継いで、卵で痛いejsを使いたくないです.あるいは卵で痛いjadeを使いたくないです.前のページを書き換えたくないということがあります.今は新しいejsやjadeモジュールを導入する必要があります.次の2ステップだけで二つのモデルを使う仕事が完成するかもしれません.
1.com nsolidate.js
cdからプロジェクトディレクトリ:
npm install consolidate --save
プロジェクトのアプリ.jsを開きます.
ap.jsの形を下のコードの断片のようにします.
app.set('view engine', 'jade');
に変更する
var engines = require('consolidate');
app.engine('jade', engines.jade);
app.engine('html', engines.ejs);
// or use these
// app.engine('jade', require('jade').__express);
// app.engine('html', require('ejs').renderFile);

app.set('view engine', 'jade');
プロジェクトを再起動すればいいです.
2.ちょっと問題があります
私のプロジェクトAで実際に使ったコードは
var engines = require('consolidate');

app.engine('jade', engines.jade);
app.engine('html', engines.ejs);
// app.engine('jade', require('jade').__express);
// app.engine('html', require('ejs').renderFile);

app.set('view engine', 'jade');
//      
app.set('view engine', 'html');
この書き方はプロジェクトAで使えますが、他の項目Bではjadeテンプレートが解析できないことが分かりました.
プロジェクトBでしか使えません.
var engines = require('consolidate');

app.engine('jade', engines.jade);
app.engine('html', engines.ejs);


app.set('view engine', 'jade');

//  
//app.engine('jade', require('jade').__express);
//app.engine('html', require('ejs').renderFile);

//app.set('view engine', 'jade');
園友の皆さんの研究をお願いします.これはなぜですか?
ejs jade consolidateのバージョンは一致しています.expressのバージョンは4.12.xです.