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個頁面時框架同樣你只須要改變其中須要渲染的數據便可;