2017-08-02 2 views
0

Ich habe eine Mail-Service-Klasse auf einem Express-Server eingerichtet.Empfehlung für die Erstellung eines Knotennachrichten-Transports

Welche Methode zum Erstellen eines Transports wird empfohlen?

class mailService { 
    private transport: nodemailer.Transport; 
    constructor(){ 
     this.transport = nodemailer.createTransport('configstring'); 
    } 

    public sendEmail(email: string){ 
     //send email 
    } 
} 

ODER

class mailService { 

    public sendEmail(email: string){ 
     let transporter = nodemailer.createTransport('configstring'); 
     //send email 
    } 

    public sendOtherEmail(email: string){ 
     let transporter = nodemailer.createTransport('configstring'); 
     //send email 
    } 
} 

Die Dokumentation sagen: „Du einen Transport wieder verwenden können, so oft wie Sie wollen es nach dem Erstellen“ Was mich führt, dass die erste Option wäre besser zu denken, aber nicht kann sagen Sie, ob es einen Vorteil geben würde.

Wäre das Erstellen des Transports jedes Mal ein Problem der Wiederholung oder wird es mehrere Instanzen im Speicher geben, die jedes Mal verwaist werden, wenn die sendEmail-Funktion ausgeführt wird?

Antwort

1

Die zweite Methode hat wenig Vorteile. Dies kann nützlich sein, wenn Sie die Transportkonfiguration zwischen verschiedenen Sendeaufträgen ändern möchten.

Wenn das nicht der Fall ist, ist es empfohlen auf die Verwendung eines einzigen Transport (erste Methode) zu halten E-Mails für den Versand nach dem DRY Prinzip.

Sie sollten sich hier auch nicht um Speicher kümmern, da Node über einen Garbage Collector verfügt und Speicher freigegeben wird, nachdem Ihre sendOtherEmail() Funktion endet.

Verwandte Themen