我认为这是一个相当简单的服务器端灰尘模板,我填充数据并传递给邮件服务。
我使用
编译页面顶部的模板var invite = fs.readFileSync('./views/mail/invite.dust', 'utf-8');
dust.compile(invite, 'invite');
然后在我的路线中,我将数据传递给dust.render
通过
dust.render('invite', {link: link, email: email},
function(err, html) {
if (err) console.log('dust error', err, html);
if (err) return next(err);
mailObj.html = html;
mailer(mailObj, next);
});
在控制台中我得到dust error [TypeError: undefined is not a function] undefined
。
就我所知,dust.render方法正在期待一个函数。 https://github.com/akdubya/dustjs/blob/master/lib/dust.js#L12
那我在这里做错了什么?
我还添加了
var compiled = dust.compile(invite, 'invite');
dust.loadSource(compiled);
按照http://www.dustjs.com/guides/rendering/,但继续得到相同的错误
答案 0 :(得分:1)
不是问题的解决方案,但事实证明我不需要直接使用灰尘。正如@Interrobang所说,我正在使用Kraken。我能够使用
从灰尘模板中获取灰尘htmlres.render('mail/invite', {link: link, email: email}, function(err, html) {
//mailer here
});
我希望express能够抱怨已经发送了标题,并且没有意识到如果一个函数作为第三个参数提供,则可能会进一步处理html。
如果不是出乎意料的话,所有人都愉快地结束了。