2015-09-09 21 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