在某些項目中,例如你接手了一個別人的項目然後你不想用蛋疼的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');
Express框架中如何引用ejs模板引擎
1.如何在專案中安裝ejs模板引擎
在NodeJS指南中利用利用以下指令建立網站的基本架構:
express -t ejs microblog
執行這個指令後繼續執行
cd microblog && npm install(安裝專案的依賴屬性),發現安裝的範本引擎是jade,而不是ejs。原因是現在的版本已經沒有-t這個指令了,改為
express -e microblog
運行完這個命令,繼續運行cd microblog && npm install,ejs模板引擎就安裝好了
但express3以上的版本把layout預設取消了,所以現在在views資料夾下並沒有產生layout.ejs。
2.安裝了ejs後,如何使用ejs的layout範本
安裝express-partials
在cmd中切換到專案目錄,執行npm install express-partials或
在 package.json 裡面的 dependencies 增加 "express-partials": "*"。然後在專案目錄下執行 npm install 。
然後在app.js 裡面引用 express-partials,引用方法:
1.新增參考 var partials = require('express-partials');
2.在 app.set('view engine', 'ejs'); 下面加上 app.use(partials());
在需要引用範本的地方呼叫 layout:'模版名稱' 範例
app.get('/reg', function (req, res) { res.render('reg', { title: '用户注册', layout: 'template' }); });
以上內容為大家介紹了Nodejs express框架一個工程中同時使用ejs模版和jade模版,希望大家喜歡。