Nodemailer传输创建推荐
Nodemailer transport creation recommendation
我在快递服务器上设置了邮件服务 class。
推荐使用哪种创建传输的方法?
class mailService {
private transport: nodemailer.Transport;
constructor(){
this.transport = nodemailer.createTransport('configstring');
}
public sendEmail(email: string){
//send email
}
}
或
class mailService {
public sendEmail(email: string){
let transporter = nodemailer.createTransport('configstring');
//send email
}
public sendOtherEmail(email: string){
let transporter = nodemailer.createTransport('configstring');
//send email
}
}
文档说 "You can reuse a transport as often as you like after creating it" 这让我认为第一个选项会更好,但不知道是否会有任何优势。
每次都简单地创建传输会是一个重复的问题,还是会有多个实例漂浮在内存中,每次执行 sendEmail
函数时都是孤立的?
使用第二种方法优势不大。如果您想更改不同发送作业之间的传输配置,它可能会派上用场。
如果不是这种情况,建议坚持使用单一传输方式(第一种方法)根据
DRY
原理.
你也不应该在这里担心内存,因为 Node 有一个垃圾收集器,内存将在你的 sendOtherEmail()
函数结束后被释放。
我在快递服务器上设置了邮件服务 class。
推荐使用哪种创建传输的方法?
class mailService {
private transport: nodemailer.Transport;
constructor(){
this.transport = nodemailer.createTransport('configstring');
}
public sendEmail(email: string){
//send email
}
}
或
class mailService {
public sendEmail(email: string){
let transporter = nodemailer.createTransport('configstring');
//send email
}
public sendOtherEmail(email: string){
let transporter = nodemailer.createTransport('configstring');
//send email
}
}
文档说 "You can reuse a transport as often as you like after creating it" 这让我认为第一个选项会更好,但不知道是否会有任何优势。
每次都简单地创建传输会是一个重复的问题,还是会有多个实例漂浮在内存中,每次执行 sendEmail
函数时都是孤立的?
使用第二种方法优势不大。如果您想更改不同发送作业之间的传输配置,它可能会派上用场。
如果不是这种情况,建议坚持使用单一传输方式(第一种方法)根据 DRY 原理.
你也不应该在这里担心内存,因为 Node 有一个垃圾收集器,内存将在你的 sendOtherEmail()
函数结束后被释放。