淺談 Node.js中Express框架中渲染模板引擎

Express的模板引擎經常使用的是ejs和jade。它預留了變量,res.render()就是將咱們的數據填充到模板後展現出完整的頁面。css

 

渲染模板 res.render("渲染模板名稱",{帶過來的數據json格式 例如content:'31231',title:'dfdssd'})html

把數據填充進模板,通常數據是JSON,模板是views目錄下的模板文件node

其中json數據不詳細解釋了能夠是對象,數組對象...jquery

在模板中渲染數據(變量) <%= content %>就能夠在模板中設置路由中的json數據的內容express

 

 

詳細解釋:json

舉個例子:
1.首先 這個方法是基於res對象的用法渲染模板  res.render();
2.內部參數("渲染模板名稱(通常爲ejs後綴名的模板)",{帶過來的數據json格式 例如content:'31231',title:'dfdssd'})
3.在自定義框架中設置,而且拋出數組

在自定義框架index.js中:框架

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/index', function(req, res, next) {


var arr=["1111111","2222222","3333333"];	
res.render('index', { title: 'Express' ,list:arr});
});

module.exports = router;

  

4.ejs後綴名與html並沒有異同 按照html書寫便可 他們都存在於views(模板)文件夾中ui

5.在views文件夾中的模板ejs文件中
經過<%=Key %>獲取到框架中渲染設置的value值 (對象{Key:value})url

若是爲數組按照上面方法一樣獲取到數組內容 只不過是數組的集合,若是要單獨以數組的每一個數據顯示須要遍歷數組

遍歷數組在ejs模板文件中以js代碼書寫,應置於<% %>中而數組中的數據應在<%= %>渲染

若是爲數組對象:

在index.js 自定義框架中

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/index', function(req, res, next) {

 var aa=[
{title:"hello html",url:"http:www.baidu.com",time:"2017.7.13"},
{title:"hello css",url:"http:www.taobao.com",time:"2017.7.13"},
{title:"hello jquery",url:"http:www.jquery22.com",time:"2017.7.13"},
{title:"hello node.js",url:"http://www.runoob.com/",time:"2017.7.13"},

 ];    
  res.render('index', { title: 'Express' ,data:aa});
});

module.exports = router;

 

 

 

在ejs模板中:

<ul>
<% for(var i=0;i<數組.length;i++){%>
<li>
<a href="<%= data[i].url %>"> <%= data[i].title %></a><%= data[i].time %></li>
<% }%>
</ul>

 

它的好處就是你在寫1000個頁面時框架同樣你只須要改變其中須要渲染的數據便可;

相關文章
相關標籤/搜索