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() 函数结束后被释放。