我如何使用节点电子邮件模板作为初始化/行为风格的对象
How do I use node-email-templates as an initialize/act style object?
(欢迎对术语的建议)
我试图从一个节点控制台应用程序设置一个简单的电子邮件发件人。阅读这个答案后,node-email-templates
似乎是要走的路。但是我不知道如何让这个库在"现在初始化,以后使用"风格的对象中工作。示例代码没有那样做,它在初始化对象的同时发送。Node-mailer给出了一个我习惯的样式的好例子:
var nodemailer = require("nodemailer");
// create reusable transport method (opens pool of SMTP connections)
var smtpTransport = nodemailer.createTransport("SMTP",{
service: "Gmail",
auth: {
user: "gmail.user@gmail.com",
pass: "userpass"
}
});
// setup e-mail data with unicode symbols
var mailOptions = {
from: "Fred Foo ✔ <foo@blurdybloop.com>", // sender address
to: "bar@blurdybloop.com, baz@blurdybloop.com", // list of receivers
subject: "Hello ✔", // Subject line
text: "Hello world ✔", // plaintext body
html: "<b>Hello world ✔</b>" // html body
}
// send mail with defined transport object
smtpTransport.sendMail(mailOptions, function(error, response){
if(error){
console.log(error);
}else{
console.log("Message sent: " + response.message);
}
// if you don't want to use this transport object anymore,
// uncomment following line:
// smtpTransport.close(); // shut down the connection pool, no more messages
});
我真正想做的是:
// require node-email-templates
// setup smtp transport, store it as a property of another object,
// let's call it Alert
// when an alert needs to send an email it will pick a template
// name and tell node-email-templates to send that template,
// with appropriate local variables
这在任何方面看起来都不寻常,但如果我能根据提供的示例代码让它工作,那就太糟糕了。
在查看源代码并发现节点电子邮件模板的主条目是一个事件驱动的过程之后,我怀疑您是否可以不付出大量努力就完成所需的工作。
如果这没有阻止你,你可以考虑从模块的main.js
函数入口点提取诸如渲染器和传输的创建之类的东西,并重构它以包含更多代表你需要的预配置资源的参数。
另一种可能的方法是在主入口函数中添加对外部定义的事件处理程序的调用,以设置对外部资源的引用。
应该注意的是,这两个更改将限制您在不丢失修改的情况下更新现有模块的能力。
但是在编写库时,没有一种简单的方法可以在不修改源代码的情况下将基本上是事件驱动的过程转换为线性过程。
相关文章:
- 使用javascript函数在页面初始化后加载jquery
- 未捕获错误:无法在初始化之前调用方法;
- 如何在剑道网格初始化后设置pageSizes
- React redux初始化功能,无论状态变化如何
- 为什么可以't Protractor在自动初始化的Angular网站上查找Angular
- 尝试初始化()Spine's控制器和故障
- Angular.js延迟控制器初始化
- 对插件初始化后动态加载的元素进行样式设置
- Angular JS控制器初始化错误
- 在XMLHttpRequest之后重新初始化jQuery
- ember-js组件初始化不同的函数
- Youtube JavaScript API不是't正在初始化
- 函数无法识别初始化的变量
- datepicker引导程序再次初始化
- jquery数据表在初始化时设置宽度
- 如何使用app和secret进行安全的解析初始化
- 从javascript中再次初始化c变量
- ng重复中的ng模型-初始化唯一作用域属性
- 正在Ajax调用上初始化主干视图
- 我如何使用节点电子邮件模板作为初始化/行为风格的对象