2014-09-28 56 views
1

我正在尝试设置从Expressjs启动的确认电子邮件。 此电子邮件模板使用html(现在是ejs),我需要将变量传递给它,以便稍后保存在变量中并通过nodemailer发送。保存ExpressJS视图ejs渲染到变量

我试着做这样的事情whitout成功:

var final_html = res.render('confirm', {variables: 'aasdad'}); 

NodeMailer代码:

var mailOptions = { 
         from: [email protected], // sender address 
         to: '[email protected]', // 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; 
        }); 

回答

1

在回调只是通过作为第三个参数,它会被调用(err, final_html)

res.render('confirm', {variables: 'aasdad'}, function(err, final_html) { 
    if (err) throw err; // TODO: handle errors better 

    var mailOptions = { 
    from: '[email protected]om', // sender address 
    to: '[email protected]', // list of receivers 
    subject: 'Welcome ' + req.body.name, // Subject line 
    html: final_html 
    }; 

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

不能得到它的工作,final_html是总是'未定义' – mdv 2014-09-28 21:48:50

+0

是否设置了'err'?如果不是,您使用的是什么版本的Express? – mscdex 2014-09-28 21:49:58

+0

4.x请检查上面的编辑。 – mdv 2014-09-28 21:53:31