nodejs express框架一個工程中同時使用ejs模版和jade模版

GabrielChenCN發表於2015-12-28

  在某些專案中,比如你接手了一個別人的專案然後你不想用蛋疼的ejs,或者你不想用蛋疼的jade。你有不想重寫之前的頁面,那麼你現在可能需要新引入ejs或者jade模組,你僅僅需要做下面兩步也許就能完成使用兩個模版的工作

1.consolidate.js

cd 到專案目錄:

npm install consolidate --save

開啟專案的app.js(也許你的叫其他名字)  

把app.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

 

相關文章