Javascript 如何在nodejs中使用模板引擎以电子邮件形式发送文本

Javascript 如何在nodejs中使用模板引擎以电子邮件形式发送文本,javascript,node.js,express,template-engine,Javascript,Node.js,Express,Template Engine,MsSql-2014 我最近开始在nodeJs上编程 我有数据库选项卡中的电子邮件模板 例如: message1 : Hello {friendName}, Happy Birthday {friendName}. Thank you, {Name} message2 : Hello All, The total expense as;

MsSql-2014

我最近开始在nodeJs上编程

我有数据库选项卡中的电子邮件模板

例如:

   message1 : Hello {friendName},
                  Happy Birthday {friendName}.
                  Thank you,
                  {Name}

    message2 : Hello All,
                  The total expense as;
                    {ListOfExpense}
                  Thank you,
                  {Name}
对于消息1——我将UI输入作为输入对象的名称和friendName。 对于消息2——我在input.expense obj上有费用列表的UI输入

我能够从DB读取,比如var dbMessage=消息1或消息2

我想使用模板引擎根据模板更改{}值,并将其存储在文本中,以便在正文中进行设置

我使用nodemailer发送邮件

var mailOptions={
        to : req.query.to,
        subject : req.query.subject,
        text : ? // I want use text as email body.
    }

    smtpTransport.sendMail(mailOptions, function(error, response){
        if(error){
           res.end("error");
        }else{
           res.end("sent");
        }
    });

请帮忙。

好吧,你可以用很多方法来做

ES6模板文本 您只需执行字符串插值,就可以非常轻松地使用带有..的函数

另外,你发送的电子邮件与这个问题无关。只需以某种方式编写一个HTML字符串(例如,使用ES6模板文本或pug),然后发送正确设置mime类型(
text/HTML
)的电子邮件,并将正文设置为HTML

从数据库加载模板
如果您的数据库中有模板,那么您只需使用
pug.compileFile
即可。有关更多信息,请查看帕格的文档。

谢谢您的回答。如果我用帕格,我有一个问题。我没有文件myPugPath.pug。我有一个结果消息。那个么,在这种情况下,我该如何使用呢;compile(resultFromDb.emailBody);意外文本“,这”在makeError(E:\NewLearning\NewWork\MyTool\Template\node\u modules\pug error\index.js:32:13)无法接受Hello,pug不编译电子邮件正文,它编译pug。你的模板必须看起来像哈巴狗。除非resultFromDb.emailBody是pug,否则您将遇到问题。是否可以从DB(或外部文本文件)加载字符串文字
function myTemplate(env) {
    const template = `Hello ${env.friendName},
                  Happy Birthday ${env.friendName}.
                  Thank you,
                  ${env.Name}`;
    return template.replace(/\n/, '<br>');
}

var mailOptions={
        to : req.query.to,
        subject : req.query.subject,
        text : myTemplate({friendName: "foo", Name: "Bar"});
    };
const pug = require('pug');
const myTemplate = pug.compileFile('myPugPath.pug');
myTemplate({friendName: "foo", Name: "Bar"});