這篇文章主要介紹了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中文網! 相關推薦:
以上是Express使用html模板的程式碼分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!