2014-09-28 3 views
1

Я пытаюсь настроить письмо с подтверждением, которое запускается из Expressjs. Этот шаблон электронной почты находится в html (теперь ejs), и мне нужно передать переменные, чтобы я мог впоследствии сохранить переменную и отправить ее с помощью nodemailer.Сохранить выражение ExpressJS для отображения ejs для переменной

Im пытается сделать что-то вроде этого 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]', // 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 является always 'undefined' – mdv

+0

Установлен ли 'err'? Если нет, какую версию Express вы используете? – mscdex

+0

4.x, пожалуйста, проверьте выше. – mdv

 Смежные вопросы

  • Нет связанных вопросов^_^