我在快速服务器上设置了邮件服务类。
建议使用哪种创建传输的方法?
class mailService {
private transport: nodemailer.Transport;
constructor(){
this.transport = nodemailer.createTransport('configstring');
}
public sendEmail(email: string){
//send email
}
}
OR
class mailService {
public sendEmail(email: string){
let transporter = nodemailer.createTransport('configstring');
//send email
}
public sendOtherEmail(email: string){
let transporter = nodemailer.createTransport('configstring');
//send email
}
}
文档说“您可以在创建后随时重复使用传输”这使我认为第一种选择会更好,但无法判断是否有任何优势。
每次只是创建传输是一个重复的问题,还是会有多个实例在内存中浮动,每次执行sendEmail
函数时都会孤立?
答案 0 :(得分:2)
使用第二种方法几乎没有优势。如果要更改不同发送作业之间的传输配置,它可能会派上用场。
如果不是这种情况,推荐坚持使用单一传输(第一种方法)来发送电子邮件根据 DRY 原理
你也不应该关注内存,因为Node有一个垃圾收集器,你的sendOtherEmail()
函数结束后将释放内存。