wake-up-neo.net

Einfache Möglichkeit, JSON unter Node.js zu speichern

Ich suche nach einer supereinfachen Art, einJSONarray dauerhaft unter Node.js zu speichern. Es muss keine Besonderheiten haben. Ich möchte nur ein JSON-Objekt dort einfügen und in der Lage sein, es beim nächsten Neustart des Servers zu lesen.

(Lösungen wie MongoDB und CouchDB beide scheinen für diesen Zweck ein Overkill zu sein.)

35
johnny

Warum nicht in eine Datei schreiben?

// Writing...
var fs = require("fs");
var myJson = {
    key: "myvalue"
};

fs.writeFile( "filename.json", JSON.stringify( myJson ), "utf8", yourCallback );

// And then, to read it...
myJson = require("./filename.json");
70
gustavohenke

Probieren Sie NeDB aus: https://github.com/louischatriot/nedb

"Eingebettete persistente Datenbank für Node.js, geschrieben in Javascript, ohne Abhängigkeiten (mit Ausnahme von npm-Modulen natürlich). Sie können sich dies als eine SQLite für Node.js-Projekte vorstellen, die mit einer einfachen request-Anweisung verwendet werden kann ist eine Untergruppe von MongoDB. Sie können es als persistenten oder nur im Arbeitsspeicher befindlichen Datastore verwenden. "

7
Ray Hulha

Ich habe eine Bibliothek mit dem Namen json-fs-store gefunden, um das JavaScript-Objekt in einer Datei mit JSON zu serialisieren und später abzurufen. 

Wenn Sie eine Datei über die store.load-Methode abrufen (die derzeit nicht in den Dokumenten beschrieben wird), wird sie mit JSON.parse analysiert. Dies ist besser als ein require wie in der anderen Antwort:

  • sie erhalten eine korrekte Fehlerbehandlung, wenn der Inhalt fehlerhaft ist 
  • wenn es jemandem gelungen ist, JavaScript-Code in die Datei einzuschleichen, führt dies zu einem Parser-Fehler, anstatt dass der JS ausgeführt wird.
5
chiborg

Wenn Sie einfache Datenspeicherung ohne externe Prozesse, sehr hohe und stabile Leistung benötigen, möchten Sie vielleicht Rocket-store

Es ist sehr einfach zu bedienen; Fügen Sie das Modul hinzu und Sie können sofort mit dem Einfügen von Datensätzen beginnen.

Es gibt drei Hauptmethoden: put , get und löschen (und einige spezielle Methoden und Optionseinstellungen)

Beispiel:

// collection/table = "cars", key = "Mercedes"
result = await rs.post("cars", "Mercedes", {owner: "Lisa Simpson", reg: "N3RD"});

// Get all records from "cars" collection
result = await rs.get("cars","*");

// Delete records in collection "cars" where keys match "*cede*"
result = await rs.delete("cars","*cede*");

Rocket-store verwendet den zugrunde liegenden Dateisystem-Cache, um die Geschwindigkeit zu optimieren, und kann mit Millionen von Datensätzen arbeiten.

Es ist leicht 100-mal schneller als eine relationale Datenbank mit Inserts. Typischerweise 70.000 Einsätze/Sek. (PC)

Sie erhalten einfache Sequenzen, automatische Inkrementierung und andere kleinere Bequemlichkeiten, aber das ist es auch. Nichts Besonderes.

Ich mag es sehr, wann immer ich einfache Speicherlösungen brauche, aber ich bin auch sehr voreingenommen, als der Autor;)

3
Simon Rigét

Sie können die JSON-Daten einfach in einer einfachen Textdatei speichern und beim Neustart des Servers lesen.

const data = require("yourarrayfile.json");

und dann wie gewohnt damit arbeiten. 

2
Soroush Hakami

Wenn Sie nach Leistung suchen, sollten Sie Folgendes beachten: LokiJS

https://www.npmjs.com/package/lokijs

http://lokijs.org/#/

2
swapnilagarwal

Obwohl sowohl LokiJS als auch NeDB mehr Benutzer zu haben scheinen, bin ich gerade auf TaffyDB gestoßen. Obwohl ich es nicht selbst ausprobiert habe, dachte ich, ich sollte es hier der Vollständigkeit halber hinzufügen. 

0
thom_nic