Aufforderung zum Herunterladen einer CSV-Datei mit node.js und node-csv-parser (Knotenmodul)

7

Kürzlich habe ich angefangen mit node.js zu arbeiten. Während ich eine Anforderung in einem meiner Projekte durchführe, stehe ich vor einem Problem, wo ich in der Lage sein sollte, einige Daten dynamisch in eine CSV-Datei zu schreiben und sie als Popup zum Herunterladen für den Benutzer ausgeben zu lassen (mit Speichern und Abbrechen Optionen - wie wir es normalerweise tun) sehen). Nachdem ich einige Zeit gegoogelt hatte, entschied ich mich für das csv npm Modul Ссылка . Ich kann Daten in eine Datei schreiben und sie mit diesem Modul speichern. Ich möchte ein Popup zum Speichern dieser Datei mit / ohne Speichern der Datei ausgeben.

Mein Code sieht ungefähr so ​​aus:

%Vor%

Dies funktioniert gut, soweit das Schreiben der CSV-Datei betroffen ist.

  • Ich möchte diese Datei sofort für Benutzer herunterladen.
  • Wenn dies ohne Speichern der Datei gemacht werden kann, wird das großartig.
  • Wie kann ich Inhaltstyp und Inhaltsdisposition so einstellen wie in PHP
  • ?

Jede Hilfe wird sehr geschätzt. - Danke

    
Manish Kumar 25.10.2012, 13:55
quelle

5 Antworten

13

Ich habe es so gemacht:

%Vor%     
Manish Kumar 08.11.2012, 07:44
quelle
19

Manish Kumars Antwort ist genau richtig - wir wollten nur eine Express 4 Syntax-Variante verwenden, um dies zu erreichen:

%Vor%     
joel.bowen 06.11.2015 19:29
quelle
11

Die folgende Lösung ist für Express

Express ist entwickelt, anstatt Anhang und Content-Typ-Header zu setzen, verwenden Sie direkt Anhang api Ссылка

Hinweis: attachment () überträgt die Datei nicht, sondern setzt den Dateinamen in den Header.

%Vor%     
Palani 16.06.2014 11:38
quelle
4

Express-csv ist ein großartiges Modul zum Schreiben von CSV-Inhalten zum Streamen von einem node.js-Server, der als Antwort an den Client gesendet wird (und als Datei heruntergeladen wird). Sehr einfach zu bedienen.

%Vor%

Die Dokumentation: Ссылка

Wenn Sie ein Objekt übergeben, müssen Sie die Header explizit voranstellen (wenn Sie möchten). Hier ist mein Beispiel mit npm mysql

%Vor%     
Federico 09.02.2015 01:05
quelle
0

Sehen Sie sich diese Antwort an: Nodejs sendet die Datei als Antwort

Grundsätzlich müssen Sie die Datei nicht auf der Festplatte speichern. Versucht stattdessen, es direkt an die response zu senden. Wenn Sie etwas wie Express verwenden, sieht es in etwa so aus:

%Vor%     
Max 25.10.2012 18:29
quelle

Tags und Links