Node.js 将ExpressJS视图ejs渲染保存到变量

Node.js 将ExpressJS视图ejs渲染保存到变量,node.js,express,ejs,nodemailer,Node.js,Express,Ejs,Nodemailer,我正在尝试设置一封从Expressjs启动的确认电子邮件。 这个电子邮件模板是html格式的(现在是ejs),我需要将变量传递给它,以便以后可以保存在变量中并与NodeEmailer一起发送 我试图在没有成功的情况下做这样的事情: var final_html = res.render('confirm', {variables: 'aasdad'}); 节点电子邮件程序代码: var mailOptions = { from: test@test.

我正在尝试设置一封从Expressjs启动的确认电子邮件。 这个电子邮件模板是html格式的(现在是ejs),我需要将变量传递给它,以便以后可以保存在变量中并与NodeEmailer一起发送

我试图在没有成功的情况下做这样的事情:

var final_html = res.render('confirm', {variables: 'aasdad'});
节点电子邮件程序代码:

var mailOptions = {
                      from: test@test.com, // sender address
                      to: 'test@test.com', // list of receivers
                      subject: 'Welcome '+req.body.name, // Subject line
                      html: final_html
                  };
如何才能做到这一点

提前谢谢

PD:回答后代码:

var final_html = res.render('confirm', {url: 'aasdad'}, function(err, html) {
                     if (err){ return err;}
                     return html;
                  });

只需将回调作为第三个参数传入,它将被调用为
(err,final_html)


无法让它工作,最终的html总是“未定义”是
err
set?如果没有,您使用的是什么版本的Express?您不能使用原始问题中显示的代码。回调将在将来某个时候调用,因此必须将依赖于
final\u html
res.render()
之后的任何内容放置在该回调中。我已经更新了我的答案,以更好地强调这一点。。。
res.render('confirm', {variables: 'aasdad'}, function(err, final_html) {
  if (err) throw err; // TODO: handle errors better

  var mailOptions = {
    from: 'test@test.com', // sender address
    to: 'test@test.com', // list of receivers
    subject: 'Welcome ' + req.body.name, // Subject line
    html: final_html
  };

  // call node-mailer with `mailOptions` here ...
});