首頁  >  文章  >  web前端  >  Express使用html模板的程式碼分析

Express使用html模板的程式碼分析

不言
不言原創
2018-06-11 17:20:061467瀏覽

這篇文章主要介紹了Express使用html模板的詳細程式碼,內容還挺不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧

express預設使用jade模板,可以設定讓其支援使用ejs或html模板。

1. 安裝ejs

在專案根目錄安裝ejs.

npm install ejs

2、引入ejs##

var ejs = require('ejs'); //我是新引入的ejs插件

3、設定html引擎

app.engine('html', ejs.__express);

設定視圖引擎

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

儲存後重新啟動服務,即可存取html檔案。

附註:在express搭建的伺服器中,html引擎沒有被配置,直接加入即可;視圖引擎已配置,修改配置即可。

-------------------------------------------- ------------------------------------------

修改的這些設定做了什麼操作?

為什麼修改了視圖引擎還要增加設定html引擎?

我們先來看看.engine()這個方法。

app.engine(ext, callback);

Express預設使用jade模板。如果你嘗試載入 "foo.jade" 文件,Express內部會呼叫如下操作。

app.engine('jade', require('jade').__express);

如果要使用其他模板引擎,如:將EJS模板映射至".html"檔案:

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

這行程式碼中,實際呼叫了EJS的.renderFile()方法, ejs.__express是該方法在EJS內部的另一個名字。

因為載入的模板引擎後呼叫的是同一個方法.__express,所以如果使用的是ejs模板,不用配置該項目。

總結:使用html模板,需增加  app.engine('html', require('ejs').__express);

使用EJS模板,不用設定此項目。

此時如果在views資料夾裡建立index.html檔案或index.ejs文件,存取的仍然是預設的index.jade檔案。這是為什麼呢?這裡要說的就是上面提到的第二項設定app.set('view engine', 'html');

#app.set(name, 值);

在.set()方法的參數中,有一項是'view engine',表示沒有指定文件模板格式時,預設使用的引擎插件。如果這裡設定為html文件,設定路由指定文件時,只要寫文件名,就會找對應的html檔。於此,腦洞大開,試了一下在views中建立3個檔案test.jade、test.ejs、test.html。路由設定如下。訪問正常!每個路由都指向對應的檔案。當然這種寫法是完全不被建議也不符合現實的。

router.get('/test/',function(req, res, next){
 res.render('test', {title: 'HTML'});
});

router.get('/test1/',function(req, res, next){
 res.render('test.ejs', {title: 'EJS'});
});

router.get('/test2/',function(req, res, next){
 res.render('test.jade', {title: 'jade});
});

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

在Html中使用Requirejs進行模組化開發的解析

以上是Express使用html模板的程式碼分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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