# 模板技術
模板技術的誕生是為了將顯示與數據分離,模板技術多種多樣,但其本質是將模板文件和數據通過模板引擎生成最終的文件內容。

# 模板技術原理
模板技術并不是什么神秘技術,干的是拼接字符串的體力活。模板引擎就是利用正則表達式識別模板標識,并利用數據替換其中的標識符。模板技術包含兩個方面:
* 定義模板標識符
* 解析模板標識符
~~~
//字符串替換的思想
function tmpl(str, obj) { ? ? ? // 解析模板標識
? ?if (typeof str === 'string') {
? ? ? ?return str.replace(/<%=\s*([^%>]+)\s*%>/g, function() {
? ? ? ? ? ?let key = arguments[1];
? ? ? ? ? ?return obj[key];
? ? ? });
? }
}
?
let str = "Hello, <%= name%>"; ?// 模板內容
let obj = {name: "樹先生"}; ? ? // 模板數據
console.log(tmp(str, obj))
~~~
# 常用模板技術
模板技術:Pug、Mustache、[EJS](https://www.ejs.co/)、Handlebars,國內的有 baiduTemplate(百度)、[artTemplate](https://aui.github.io/art-template/)(騰訊)、juicer(淘寶)。
- NodeJs
- 01-萬維網
- 02-CS 架構 VS BS 架構
- 03-Web 服務器訪問流程
- 04-url
- 05-網絡傳輸協議
- 06-HTTP 協議
- 07-報文
- 08-命令行界面
- 09-什么是 Node.js
- 10-環境安裝及配置
- 11-JavaScript 代碼運行環境
- 12-全局對象
- 13-Buffer
- 14-模塊化
- 15-EventEmitter
- 16-path模塊
- 17-流式操作
- 18-包
- 19-模板技術
- 20-ejs入門
- 21-express
- 01-什么是express
- 02-Hellow Express
- 03-靜態資源服務
- 04-路由
- 05-模塊化路由處理程序
- 06-中間件
- 07-手動實現中間件
- 08-常用內置中間件和第三方中間件
- 09-響應
- 10-獲取請求參數
- 11-Express 中使用模板引擎
- 22-web存儲與安全
- 01-cookie
- 02-sessionStorage
- 03-localStorage
- 04-base64
- 05-https
- 06-同源策略