什么是 HTML 模板所謂模板,是指將一個(gè)事物的結(jié)構(gòu)規(guī)律予以固定化" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁(yè) > 營(yíng)銷資訊 > 網(wǎng)站運(yùn)營(yíng) > Node —— 模板引擎

Node —— 模板引擎

時(shí)間:2023-06-07 08:03:01 | 來源:網(wǎng)站運(yùn)營(yíng)

時(shí)間:2023-06-07 08:03:01 來源:網(wǎng)站運(yùn)營(yíng)

Node —— 模板引擎:為了實(shí)現(xiàn)一個(gè)簡(jiǎn)易的 BFF 實(shí)踐demo,需要在 Node.js 提供基礎(chǔ)的 SSR 能力。模板引擎作為重要的一部分,現(xiàn)需要針對(duì)其進(jìn)行一下技術(shù)預(yù)研。

什么是 HTML 模板

所謂模板,是指將一個(gè)事物的結(jié)構(gòu)規(guī)律予以固定化、標(biāo)準(zhǔn)化的成果,它體現(xiàn)的是結(jié)構(gòu)形式的標(biāo)準(zhǔn)化。 所以 HTML 模板,大致就是要提取了一個(gè) html 網(wǎng)頁(yè)Dom 結(jié)構(gòu)的字符串,然后我們將獲取到的數(shù)據(jù)注入到模板中,就能獲得完整可展示的 HTML 文檔。

什么是 HTML 模板引擎

web 開發(fā)的模板引擎,則是為了使用戶界面與業(yè)務(wù)數(shù)據(jù)(內(nèi)容)分離而產(chǎn)生的,它可以生成特定格式的文檔,用于網(wǎng)站的模板引擎就會(huì)生成一個(gè)標(biāo)準(zhǔn)的HTML文檔。

模板引擎需要具備的能力

社區(qū)中的模板引擎

以下都是些 Node.js 環(huán)境下的模板引擎,后端語(yǔ)言不太了解,列舉一二(JAVA => jsp, C# => http://ASP.NET

技術(shù)選擇

考慮到實(shí)踐項(xiàng)目重點(diǎn)在于對(duì) BFF 層的設(shè)計(jì)學(xué)習(xí),對(duì)模板引擎功能要求不高,不需要這種大而全的模板引擎庫(kù),其次這些庫(kù)引入也需要一些學(xué)習(xí)成本,于是最后選擇自行寫一個(gè)建議的模板引擎。

簡(jiǎn)易模板引擎

創(chuàng)建模板

使用了 Node.js 的 vm 內(nèi)置虛擬機(jī)模塊來 編譯和運(yùn)行的 JavaScript 代碼,從而一定程度上避免 xss。

/** * 創(chuàng)建模板 * @param {string} templatePath 模板路徑 * @returns {function} */function createTemplate(templatePath) { templateCache[templatePath] = vm.runInContext( `(function (data) { with (data) { return /`${fs.readFileSync(templatePath, 'utf-8')}/` } })`, templateContext, ); return templateCache[templatePath];}

include 支持

const templateContext = vm.createContext({ include: function (name, data) { const template = templateCache[name] || createTemplate(name); return template(data); }});

源碼鏈接



關(guān)鍵詞:引擎,模板

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉