首頁  >  文章  >  web前端  >  Nodejs express框架一個工程同時使用ejs模版和jade模版_node.js

Nodejs express框架一個工程同時使用ejs模版和jade模版_node.js

WBOY
WBOY原創
2016-05-16 15:23:021922瀏覽

在某些項目中,例如你接手了一個別人的項目然後你不想用蛋疼的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資料夾下並沒有產生lay​​out.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模版,希望大家喜歡。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn