


Bulk importieren Sie eine CSV -Datei mit Mongoose mit node.js in mongoDB
Mar 10, 2025 am 12:09 AMDieses Thema ist für mich sehr angenehm. In vielen Webanwendungen ist es weit verbreitet, Benutzereingaben zu akzeptieren und einen einzelnen Datensatz in Ihrer Datenbank zu speichern. Aber was ist, wenn Ihre Benutzer (oder Sie) mehrere Einfügungen in einem einzigen Befehl ausführen m?chten? Interagiert mit MongoDB. Wenn Sie dies nicht tun, würde ich empfehlen, meine
Einführung in Mongoose für MongoDB und Node.jsArtikel zuerst zu lesen. Dieser Artikel beschreibt, wie Mongoose mit MongoDB interagiert, indem sie starke Schemata erstellen, aus denen ein Modell erstellt wird. Wenn Sie bereits ein gutes Verst?ndnis für Mongoose haben, gehen wir fort. Navigieren Sie in einer Eingabeaufforderung zu dem Ort, an dem Sie Ihre Node.js -Anwendungen hosten m?chten, und führen Sie die folgenden Befehle aus:
Verwenden des Flags bedeutet, dass das Projekt mit den vorhandenen Standardwerten initialisiert wird, sodass die Anwendung mit
index.jsbeginnt. Bevor wir CSV -Dateien erstellen und analysieren, müssen wir zuerst einige erste Setups durchführen. Wir m?chten dies zu einer Webanwendung machen. Dazu verwenden Sie das Express-Paket, um alle Nitty-Gity-Server-Setups zu verarbeiten. Installieren Sie in Ihrer Eingabeaufforderung Express, indem Sie den folgenden Befehl ausführen:
Da diese Webanwendung Dateien über ein Webformular akzeptiert, werden wir auch das Express-Express-Datei-Upload verwenden. Lassen Sie uns dies jetzt auch installieren:
mkdir csvimport<br>cd csvimport<br>npm init -y<br>
-y
Wir haben genügend Erstkonfiguration erstellt, um die Webanwendung einzurichten und eine grundlegende Webseite zu erstellen, die ein Datei -Upload -Formular erstellt. Diese Datei legt den Webserver ein.?
npm install express --save<br>index.html
-Datei zurück, die das Webformular enth?lt, mit dem ein Benutzer eine CSV -Datei hochladen kann. Dies bedeutet, dass Sie im Root -Verzeichnis erfolgreich mit dem Webserver verbunden sind. Diese Datei erstellt das Formular zum Hochladen einer CSV -Datei.
- Ein Link zu /template , der beim Klicken eine CSV -Vorlage herunterladen kann, die mit den zu importierenden Informationen besiedelt werden kann. Das ist eine in HTML verwendete Codierungsmethode, wenn das Formular ein Datei -Upload enth?lt.?
-
encType
multipart/form-data
Wenn Siefile
http: // localhost: 8080/ besuchen, sehen Sie das früher erstellte Formular. Wenn Sie die Einführung in den Mungoosemultipart/form-data
-Aktel lesen, wurde ein Autorschema erstellt. In diesem Artikel werden Sie dieses Schema neu erstellen und es dem Benutzer erm?glichen, eine Sammlung von Autoren in die MongoDB -Datenbank zu importieren. Schauen wir uns das Autorenschema an. Bevor wir dies tun, haben Sie es wahrscheinlich vermutet - wir müssen das Mongoose -Paket installieren:
Erstellen des Schemas und des Modells Mit dem installierten Mongoose -Installieren erstellen wir ein neues
Autor. Die CSV -Vorlage, die durch Klicken auf den Vorlagelink heruntergeladen werden kann. Um die CSV -Vorlageerzeugung zu unterstützen, werden wir das
-Paket verwenden. Dieses NPM -Paket wandelt JSON mit Spaltentiteln und ordnungsgem??en Zeilenenden in CSV um. Sie werden diesen neuen Code für die Vorlagenroute an den zuvor erstellten index.js Datei anh?ngen:
mkdir csvimport<br>cd csvimport<br>npm init -y<br>
Das erste, was dieser Code tut, ist eine neue
template.jsDatei (als n?chstes) und erstellen Sie eine Route für /template . In dieser Route wird eine
-Funktion in der Dateinpm install express --save<br>template.js
aufgerufen. Es erstellt und exportiert dann eine -Funktion. Diese Funktion akzeptiert die Anforderungs- und Antwortobjekte aus dem Express -Server. Dies kann auf zwei Arten erfolgen. Der erste Weg (der in diesem Tutorial erfolgt) besteht darin, eine statische Liste der Felder zu erstellen, die in die Vorlage aufgenommen werden sollen. Der zweite Weg besteht darin, die Felderliste dynamisch zu erstellen, indem die Eigenschaften aus dem Autorenschema extrahiert werden. Es w?re eine sch?ne Idee gewesen, die dynamische Methode zu verwenden, aber es wird etwas kompliziert, wenn Sie nicht mehrere Eigenschaften aus dem Schema in die CSV -Vorlage einfügen m?chten. In diesem Fall enth?lt unsere CSV -Vorlage die Eigenschaften index.js mit einer Datenbankverbindung und einer neuen konfigurierten Postroute angelegt werden k?nnen. Zum Glück gibt es mehrere gro?artige Bibliotheken, die diesen Job unterstützen. Für dieses Tutorial werden wir das -Funktion aus der Datei upload.js aufruft. Es ist nicht erforderlich, diese Funktionen in separate Dateien zu platzieren. Es ist jedoch am besten, separate Dateien für diese Routen zu erstellen, da er den Code sch?n und organisiert h?lt. Die ersten drei Zeilen enthalten die erforderlichen Pakete, die zum Analysieren und Speichern der CSV -Daten erforderlich sind. Als n?chstes wird die Funktion Eigenschaft im Array. Die Eigenschaft index.html an sie übergeben. Andernfalls wird dem Benutzer eine Erfolgsnachricht angezeigt, die angibt, wie viele Autoren in der Datenbank hochgeladen und gespeichert wurden. einige Datens?tze hochgeladen. Wenn Ihr Anwendungsfall die M?glichkeit erfordert, Tausende von Datens?tzen hochzuladen, ist es m?glicherweise eine gute Idee, die Datens?tze in kleineren Brocken zu speichern. Dies kann auf verschiedene Arten erfolgen. Wenn ich es implementieren würde, würde ich empfehlen, die genie?en! Mary ist ein Softwareentwickler mit Sitz in Lagos, Nigeria, mit Fachwissen in Node.js, JavaScript, MySQL und NoSQL Technologies.mkdir csvimport<br>cd csvimport<br>npm init -y<br>
_id
und created
nicht, da diese über Code gefüllt werden. Wenn Sie jedoch keine Felder haben, die Sie ausschlie?en m?chten, funktioniert die dynamische Methode ebenfalls. Dieses Autoren.CSV
herunterladen. Diese Datei wird vor dem Hochladen bev?lkert. Kommen wir zu den Fleisch und Kartoffeln dieses Beispiels und analysieren Sie diese CSV -Datei. Die Datei json2csv
erfordert eine Aktualisierung, um eine Verbindung zu MongoDB herzustellen und eine neue Postroute zu erstellen, mit der das Datei -Upload: csv
res
-Paket verwenden, das mit dem folgenden Befehl installiert werden kann: post
für die Verwendung durch die Datei index.js exportiert. In dieser Funktion findet die Magie statt. Wenn dies nicht der Fall ist, wird ein Fehler zurückgegeben, der angibt, dass eine Datei hochgeladen werden muss. Dies erfolgt durch den Zugriff auf das Array authorFile
definiert wurde. Dieses Array wird verwendet, um die Daten in der Datenbank zu speichern. Diese Funktion akzeptiert die CSV -Datei als Zeichenfolge. Die Zeichenfolge wird aus der Eigenschaft files
extrahiert. Die Eigenschaft file
enth?lt den Inhalt der hochgeladenen CSV -Datei. Diese sind beide auf file
festgelegt. Dies gibt der Bibliothek mit, dass die erste Zeile der CSV -Datei die Header enth?lt und dass leere Zeilen ignoriert werden sollten. Das Ereignis wird für jede Zeile der CSV -Datei einmal aufgerufen. Dieses Ereignis enth?lt ein JavaScript -Objekt der analysierten Daten. Dieses Objekt wird dann zum -Array hinzugefügt. In der Ereignisrückruffunktion werden wir die Funktion authors
data
-Rallback -Funktion zu aktualisieren, um die L?nge des Autorenarrays zu überprüfen. Wenn das Array Ihre definierte L?nge überschreitet, z. 100, rufen Sie die Author.create
-Funktion auf dem Array auf und setzen Sie das Array auf leeren zurück. Dadurch wird die Datens?tze in Teilen von 100 gespeichert. Lassen Sie die endgültige create
-Anruf in der end
-Callback -Funktion, um die endgültigen Datens?tze zu speichern.
Das obige ist der detaillierte Inhalt vonBulk importieren Sie eine CSV -Datei mit Mongoose mit node.js in mongoDB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Es gibt drei g?ngige M?glichkeiten, HTTP-Anforderungen in Node.js zu initiieren: Verwenden Sie integrierte Module, Axios und Knotenfetch. 1. Verwenden Sie das integrierte HTTP/HTTPS-Modul ohne Abh?ngigkeiten, das für grundlegende Szenarien geeignet ist, jedoch eine manuelle Verarbeitung von Datengen?hten und Fehlerüberwachung erfordert, z. 2.Axios ist eine auf Versprechen basierende Bibliothek von Drittanbietern. Es verfügt über eine kurze Syntax und leistungsstarke Funktionen, unterstützt Async/Auseait, automatische JSON -Konvertierung, Interceptor usw. Es wird empfohlen, asynchrone Anforderungsvorg?nge zu vereinfachen. 3.Node-Fetch bietet einen Stil ?hnlich dem Browser-Abruf, basierend auf Versprechen und einfacher Syntax

JavaScript -Datentypen sind in primitive Typen und Referenztypen unterteilt. Zu den primitiven Typen geh?ren String, Anzahl, Boolesche, Null, undefiniertes und Symbol. Die Werte sind unver?nderlich und Kopien werden bei der Zuweisung von Werten kopiert, sodass sie sich nicht gegenseitig beeinflussen. Referenztypen wie Objekte, Arrays und Funktionen speichern Speicheradressen, und Variablen, die auf dasselbe Objekt zeigen, wirkt sich gegenseitig aus. Typeof und Instanz k?nnen verwendet werden, um die Typen zu bestimmen, aber auf die historischen Probleme der TypeOfnull zu achten. Das Verst?ndnis dieser beiden Arten von Unterschieden kann dazu beitragen, einen stabileren und zuverl?ssigeren Code zu schreiben.

Hallo, JavaScript -Entwickler! Willkommen in den JavaScript -Nachrichten dieser Woche! Diese Woche konzentrieren wir uns auf: Oracas Markenstreit mit Deno, neue JavaScript -Zeitobjekte werden von Browsern, Google Chrome -Updates und einigen leistungsstarken Entwickler -Tools unterstützt. Fangen wir an! Der Markenstreit von Oracle mit dem Versuch von Deno Oracle, ein "JavaScript" -Marke zu registrieren, hat Kontroversen verursacht. Ryan Dahl, der Sch?pfer von Node.js und Deno, hat eine Petition zur Absage der Marke eingereicht, und er glaubt, dass JavaScript ein offener Standard ist und nicht von Oracle verwendet werden sollte

Versprechen ist der Kernmechanismus für den Umgang mit asynchronen Operationen in JavaScript. Das Verst?ndnis von Kettenanrufen, Fehlerbehebung und Kombination ist der Schlüssel zum Beherrschen ihrer Anwendungen. 1. Der Kettenaufruf gibt ein neues Versprechen durch .then () zurück, um asynchrone Prozessverkampferung zu realisieren. Jeder. Dann () erh?lt das vorherige Ergebnis und kann einen Wert oder ein Versprechen zurückgeben; 2. Die Fehlerbehandlung sollte .Catch () verwenden, um Ausnahmen zu fangen, um stille Ausf?lle zu vermeiden, und den Standardwert im Fang zurückgeben, um den Prozess fortzusetzen. 3. Combinatoren wie Promise.All () (erfolgreich erfolgreich erfolgreich nach allen Erfolg), Versprechen.Race () (Die erste Fertigstellung wird zurückgegeben) und Versprechen.Allsettled () (Warten auf alle Fertigstellungen)

Cacheapi ist ein Tool, das der Browser zur Cache -Netzwerkanfragen bereitstellt, das h?ufig in Verbindung mit dem Servicearbeiter verwendet wird, um die Leistung der Website und die Offline -Erfahrung zu verbessern. 1. Es erm?glicht Entwicklern, Ressourcen wie Skripte, Stilbl?tter, Bilder usw. Zu speichern; 2. Es kann die Cache -Antworten entsprechend den Anfragen übereinstimmen. 3. Es unterstützt das L?schen bestimmter Caches oder das L?schen des gesamten Cache. 4.. Es kann Cache -Priorit?ts- oder Netzwerkpriorit?tsstrategien durch Servicearbeiter implementieren, die sich auf Fetch -Ereignisse anh?ren. 5. Es wird h?ufig für die Offline -Unterstützung verwendet, die wiederholte Zugriffsgeschwindigkeit, die Vorspannungs -Schlüsselressourcen und den Inhalt des Hintergrundaktualisierungss beschleunigen. 6. Wenn Sie es verwenden, müssen Sie auf die Cache -Versionskontrolle, Speicherbeschr?nkungen und den Unterschied zum HTTP -Caching -Mechanismus achten.

Die Ereignisschleife von JavaScript verwaltet asynchrone Vorg?nge, indem sie Call -Stapel, Webapis und Task -Warteschlangen koordinieren. 1. Der Anrufstack führt synchronen Code aus, und wenn er auf asynchrone Aufgaben begegnet, wird er zur Verarbeitung an Webapi übergeben. 2. Nachdem das Webapi die Aufgabe im Hintergrund abgeschlossen hat, wird der Rückruf in die entsprechende Warteschlange (Makroaufgabe oder Micro -Aufgabe) eingebaut. 3. Die Ereignisschleife prüft, ob der Anrufstapel leer ist. Wenn es leer ist, wird der Rückruf aus der Warteschlange herausgenommen und zur Ausführung in den Anrufstapel geschoben. V. 5. Das Verst?ndnis der Ereignisschleife hilft zu vermeiden, den Haupt -Thread zu blockieren und die Codeausführungsreihenfolge zu optimieren.

Ereignisblasen verbreiten sich vom Zielelement nach au?en zum Vorfahrknoten aus, w?hrend Ereignisfassungen sich von der ?u?eren Schicht nach innen zum Zielelement ausbreiten. 1. Ereignisblasen: Nach dem Klicken auf das untergeordnete Element l?st das Ereignis den H?rer des übergeordneten Elements nach oben aus. Nach dem Klicken auf die Schaltfl?che gibt es beispielsweise zuerst die untergeordnete und dann entzündete Eltern aus. 2. Ereigniserfassung: Stellen Sie den dritten Parameter auf True ein, so dass der H?rer in der Erfassungsstufe ausgeführt wird, z. B. das Ausl?sen des Capture -Listeners des übergeordneten Elements, bevor Sie auf die Schaltfl?che klicken. 3. Praktische Verwendungszwecke umfassen ein einheitliches Management von Ereignissen für Kinderelemente, Vorverarbeitung und Leistungsoptimierung von Abfangen. V.

In JavaScript -Arrays gibt es zus?tzlich zu MAP und Filter andere leistungsstarke und selten verwendete Methoden. 1. Reduzierung kann nicht nur summieren, sondern auch z?hlen, gruppen, flach Arrays ab und bauen neue Strukturen auf. 2. FindingIndex werden verwendet, um einzelne Elemente oder Indizes zu finden. 3. Einige und alles werden verwendet, um festzustellen, ob Bedingungen bestehen oder sich alle treffen. 4. SORT kann sortiert werden, wechselt aber das ursprüngliche Array. 5. Achten Sie darauf, das Array zu kopieren, wenn Sie es verwenden, um Nebenwirkungen zu vermeiden. Diese Methoden machen den Code pr?gnanter und effizienter.
