我需要通过电子邮件(我正在使用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。此外,我需要更改其中的一些值。将此文件分配给变量并将其发送的最简单方法是什么?
答案 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安装小胡子