2016-05-31 5 views
0

Ich erstelle eine xlsx-Arbeitsmappe mit dem Modul exceljs und dann möchte ich es als Anhang über meine Express-Middleware senden.Schreibbaren Stream als Anhangsknoten senden express

ich erstellen und meine Arbeitsmappe in einem Stream speichern den folgenden Code verwenden, wie in der Dokumentation des Moduls gezeigt

var stream = fs.createWriteStream('test.xlsx');  
    // write to a stream 
    workbook.xlsx.write(stream) 
     .then(function() { 
      // done 
    }); 

wo Strom ein beschreibbarer Strom ist.

Mein Problem ist, dass ich nicht verstehe, wie man mit dem Stream umgehen soll, um es zu senden. Wenn versucht wird, es zu res stream.pipe(res) zu pannen, gibt es einen Fehler, der nicht lesbar ist, um ihn zu pipen.

Was ist die beste Vorgehensweise für mich jetzt?

p.s. Ich könnte es in eine Datei auf dem Server speichern und dann die Datei lesen und durch Express senden. Das würde mir nicht weiterhelfen, da der Anhang danach nicht benötigt wird, und ist ein Workaround, den ich nicht mag.

Antwort

1

Wenn Sie den Stream haben Sie die es als Anhang folgende Möglichkeiten in Eil zu senden:

res.attachment('yourfile.xlsx'); stream.pipe(res);

+0

Wie ich oben stream.pipe (res) schrieb gibt einen Fehler. "Unbehandelte Ablehnung Fehler: Kann nicht pipen. Nicht lesbar" – cs04iz1

+0

Jede Chance auf ein wenig mehr Code, damit wir den Kontext sehen können? So wie Sie den Stream erstellen. – Hyra

+0

Ich habe die Erstellung des Streams hinzugefügt. Ich bin offen für Vorschläge, wenn Sie denken, dass ich nicht richtig anfange. – cs04iz1

Verwandte Themen