簡體   English   中英

Node js + 模板替換內容

[英]Node js + template replace content

我正在努力為員工生成錄取通知書。 所以我有一些默認模板 index.html:

索引.html

<!DOCTYPE html>
<html>
<head>
</head>
<body>

<div id="header">
<h1>Offer Letter</h1>
</div>

<div id="name">
 Hello [[Name]],

Welcome to our organization,'

Details:

[[Date]]    : Offer Letter Date
[[Name]]    : Employee Name
[[Designation]] : Designation
[[Address]] : Communication Address
[[CTC]]  : Cost to the Company

</div>

<div id="footer">
Copyright
</div>

</body>
</html>

我一次生成多個報價超過 300。

所以我有這樣的json數據:

var obj = [
 { "name" : "Abc",
  "Date" : "12-12-2014",
  "Designation" : "Admin",
  "Address" : "XXXX",
  "CTC" : 3333},
{ "name" : "wefrwe",
  "Date" : "12-12-2014",
  "Designation" : "Admin",
  "Address" : "XXXX",
  "CTC" : 55},
{ "name" : "dssd",
  "Date" : "12-12-2015",
  "Designation" : "Admin",
  "Address" : "XXXX",
  "CTC" : 333},
{ "name" : "gfsc",
  "Date" : "12-1-2014",
  "Designation" : "Admin",
  "Address" : "XXXX",
  "CTC" : 22},
{ "name" : "dssdds",
  "Date" : "1-12-2014",
  "Designation" : "Admin",
  "Address" : "XXXX",
  "CTC" : 4334}
];

我如何替換值(例如 [[Name]] 到 Abc )。

有任何節點包嗎?

我嘗試了以下代碼,但不知道這是最好的方法和有用的。

for(i in obj) {


var textbody = '<!DOCTYPE html> <html> <head> </head> <body> <div id="header"> <h1>Offer Letter</h1> </div> <div id="name"> Hello [[name]], Welcome to our organization,' Details: [[Date]] : Offer Letter Date [[Name]]    : Employee Name [[Designation]] : Designation [[Address]]   : Communication Address [[CTC]]  : Cost to the Company </div> <div id="footer"> Copyright </div> </body> </html>';


textbody = textbody.replace(/{[^{{}}]+}/g, function(key){
    return obj[key.replace(/[{{}}]+/g, "")] || "";
});

}

有關使用節點、節點郵件程序和玉石發送電子郵件的信息,請參閱此處

如何在nodejs中將html頁面作為電子郵件發送

您的玉石模板應該類似於(或優於):

doctype html
html
    head
    body
        p
            | Hello #{newemp.name},
            br
            br
            | Welcome to our organization.
            br
            br
            | Details:
            br
            | #{newemp.Date}  : Offer Letter Date
            br
            | #{newemp.name}  : Employee Name
            br
            | #{newemp.Designation}  : Designation
            br
            | #{newemp.Address}  : Communication Address
            br
            | #{newemp.CTC}  : Cost to the Company

在引用的鏈接中,您需要傳遞如下上下文:

var context = { 
                 "name" : "Abc",
                 "Date" : "12-12-2014",
                 "Designation" : "Admin",
                 "Address" : "XXXX",
                 "CTC" : 3333
              };

為簡單起見,我確實使用一個員工對象對上下文變量進行了硬編碼,您需要為每封電子郵件動態傳遞每個員工對象。

mustache.js是 JavaScript 中 mustache 模板系統的零依賴實現。

Mustache是一種無邏輯的模板語法。 它可以用於 HTML、配置文件、源代碼 - 任何東西。 它的工作原理是使用散列或對象中提供的值擴展模板中的標簽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM