時(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ù)研。模板
,是指將一個(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 文檔
。模板引擎
,則是為了使用戶界面與業(yè)務(wù)數(shù)據(jù)(內(nèi)容)分離而產(chǎn)生的,它可以生成特定格式的文檔,用于網(wǎng)站的模板引擎就會(huì)生成一個(gè)標(biāo)準(zhǔn)的HTML文檔。模板引擎
功能要求不高,不需要這種大而全的模板引擎庫(kù),其次這些庫(kù)引入也需要一些學(xué)習(xí)成本,于是最后選擇自行寫一個(gè)建議的模板引擎。編譯和運(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];}
const templateContext = vm.createContext({ include: function (name, data) { const template = templateCache[name] || createTemplate(name); return template(data); }});
關(guān)鍵詞:引擎,模板
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。