HTML文件作为Node.js

时间:2017-05-05 11:48:16

标签: html node.js sendgrid

我需要通过电子邮件(我正在使用Sendgrid)通过简单的Node.js服务器发送一些内容作为html。我只是发送一些带有变量的文本和换行符。

var postData = 'lat: ' + formatted.latitude + '<br>lng: ' + formatted.longitude + '<br>time: ' + formattedDate;
sendEmail(postData);

然后我发送带有Sendgrid的电子邮件作为HTML。

var content = new helper.Content('text/html', messageContent);

无需粘贴剩余的代码块。

我需要的是更复杂的.html文件,其中包含css和javascript。此外,我需要更改其中的一些值。将此文件分配给变量并将其发送的最简单方法是什么?

1 个答案:

答案 0 :(得分:3)

如果我理解了这个问题,那就不舒服,但你可以非常简单地阅读该文件。刚

var fs = require('fs'); //Filesystem    

var content = fs.readFileSync("path/to/File/file.html","utf-8");
//this is the content of your file.html

如果你保持简单,你可以使用一种正则表达式并用值替换smthing ..如果它必须更复杂,我建议你使用模板引擎。我的个人意见是mustache。 还有一个名为Mustache的小胡子nodejs的库。 在这种情况下,您可以像这样使用它:

const mustache   = require('mustache');
const fs = require('fs'); //Filesystem    
//...
var content = fs.readFileSync("path/to/File/file.html");
var view = {formatted:{latitude: 0,longitude:0}, formattedDate:"01/01/1990"}
var output = mustache.render(content, view);

要做到这一点,你必须首先了解胡子,但它非常简单。查看教程here

您的 file.html 应如下所示:

<div> lat: {{formatted.latitude}} <br> lng: {{formatted.longitude}} </div>
<script>
     var formattedDate = "{{formattedDate}}";
</script>

请注意,您必须首先使用npm install mustache安装小胡子