ejs 的使用
安裝 與 使用
安裝 ejs-locals 與 body-parser
npm install ejs-locals body-parser --save
在專案router js檔加入
var express = require('express');
var app = express();
var engine = require('ejs-locals');
var bodyParser = require('body-parser');
app.engine('ejs',engine);
//統一將樣板放入views資料夾
app.set('views','./views');
//用ejs template方式呈現
app.set('view engine','ejs');
//增加body解析
app.use(bodyParser.json());//可解析json資料
app.use(bodyParser.urlencoded({extended:false}))
app.get('/',function(req,res){
res.render('index',{
'isShow':true,
'title':'就學習',
'me':'<h1>chin</h1>',
'array':['aaa','bbb','ccc','ddddd']
});
})
說明 :
app.engine('ejs',engine) : 表示使用ejs當渲染引擎
app.set('views','./views') : 統一將樣板放入views資料夾
app.set('view engine','ejs') : 用ejs template方式呈現
res.render('index',{'title':"12378"}) : 對 index.ejs 渲染,並提交數據(title)
常見的四種content-type
application/x-www-form-urlencoded 常见的form提交
multipart/form-data 文件提交
application/json 提交json格式的資料
text/xml 提交xml格式的資料
app.use(bodyParser.json()) : 解析json資料(req.body)
也就是header中包含:Content-Type: application/json
app.use(bodyParser.urlencoded({extended:false})):用来解析form表单提交的資料
也就是header中包含:Content-Type: application/x-www-form-urlencoded
屬性: extended -> extended選項允許使用querystring(false)或qs(true)來解析,默認值是true
querystring 用來字符串化對像或解析字符串 :
querystring.parse("name=henry&age=30") => { name: 'henry', age: '30' }
qs是一個querystring的庫,在qs的功能基礎上,支持更多的功能優化了一些安全性
// 內建對象 querystring
querystring.parse("info[name]=henry&info[age]=30&hobby[1]=sport&hobby[2]=coding") =>
{
'info[name]': 'henry',
'info[age]': '30',
'hobby[1]': 'sport',
'hobby[2]': 'coding'
}
// 第三方插件 qs
qs.parse("info[name]=henry&info[age]=30&hobby[1]=sport&hobby[2]=coding") =>
{
info: {
name: 'henry',
age: '30'
},
hobby: [ 'sport', 'coding' ]
}
建立 views資料夾
在資料夾裡 建立 index.ejs :
<% if(isShow){ %>
<span>友秀出來</span>
<%}%>
<%=title%>
<%-me%>
<ul>
<% for(var i=0;i<array.length;i++){ %>
<li><%= array[i]%></li>
<% } %>
</ul>
說明 :
%= % => 輸出字串
%- % => 輸出網頁文本
% % => 進行邏輯與其他運算
執行 : node 你的.js 並到127.0.0.1:3000即可看到成果
Last updated
Was this helpful?