2015-09-09 134 views
0

我使用html作爲內容併發送郵件,但還有一個需求是需要從後端獲取數據並需要附加到html.I在路徑中獲取語法錯誤誰能幫助我Nodejs將後端數據附加到html

client.query(query, function(err, result1) { 
    var renderTemplate = function('/index2.html', result1.rows) { 
    fs.readFile('/index2.html', 'utf8', function(err, file){ 
     return ejs.render('/index2.html', result1.rows); }} }); 
+0

你需要從後端獲得什麼數據? – shan1024

+0

我得到人的姓名,email_id並將結果存儲在result1中,現在需要將result1附加到html –

回答

0

如果你的HTML文件準備必須把它的數據附加那麼你可以使用fs.append這樣的:

fs.appendFile(pathToFile, dataToAppend, function(err) { 
    if (err) // Handle error 
    transporter.sendMail({ 
     from : [email protected], 
     to : [email protected], 
     subject : 'Invitation', 
     html : pathToFile 
    }) 
}) 

但如果你已經關閉的標籤可能造成問題...

+0

獲取錯誤'@'地方的意外標記ILLEGAL –

+0

電子郵件地址字符串是否?它們應該被包圍在'''' –

1

UPDATE:我意識到ejs v1可能沒有那麼受歡迎,所以這被編輯爲與v2一起使用。

本示例使用ejs,請務必安裝ejs以使此示例正常工作。

我沒有寫任何錯誤處理,如果是用於生產,一定要寫錯誤處理。

渲染插入數據的模板:

var fs = require('fs'); 
var ejs = require('ejs'); 

var renderTemplate = function(pathToHtmlTemplate, dataToBeInserted) { 

    // reads your template file to be used in the callback 
    fs.readFile(pathToHtmlTemplate, 'utf8', function(err, file) { 

     // returns a rendered html with data to driver code 
     return ejs.render(pathToHtmlTemplate, dataToBeInserted); 

    } 
} 

你的HTML模板應該使用類似<%= data.name%>:https://github.com/mde/ejs

<ul> 
    <li><%=data.name%></li> 
    <li><%=data.email%></li> 
</ul> 

關於圖書館的更多信息

+0

在第二次循環關閉時獲得語法錯誤。 –

+0

@SaiKishore有趣的是,將錯誤日誌複製並粘貼到原始文章中。還有關於你的代碼現在是什麼樣子的更新? – nkl