如何在SailsJS中将视图渲染为字符串?

时间:2014-06-12 14:38:52

标签: sails.js ejs

在一个控制器中,我想呈现具有特定布局的特定视图以发送包含结果字符串的电子邮件,但我显然不需要向用户显示结果。有没有办法使用我用来渲染视图的EJS引擎来实现这个目的?这是我的一点简化控制器动作:

  setEmail: function(req, res) {
    var update = {
      activationToken: _getToken(),
      email: req.param('email')
    };

    Profile.update(res.locals.profile.id, update).then(function(profile) {
      res.redirect(profileUrl);
      mailer.sendActivationEmail(
        update.email,
        res.i18n('Подтвердите свой адрес электронной почты'),
        emailString); // <=== Here is where I need the string rendered from a view
    });
  },

2 个答案:

答案 0 :(得分:7)

使用view-hook

Profile.update(res.locals.profile.id, update).then(function(profile) {
  res.redirect(profileUrl);

  sails.hooks.views.render("viewname",profile, function(err,html){
     if(err) return console.log(err);

     mailer.sendActivationEmail(
       update.email,
       res.i18n('Подтвердите свой адрес электронной почты'),
       html
     );
    })

});

编辑:右回调

答案 1 :(得分:2)

我想我宁愿使用像这样的特定电子邮件模块:

https://github.com/niftylettuce/node-email-templates

哪些可以访问EJS模板

相关问题