web-dev-qa-db-fra.com

Un moyen facile de stocker JSON sous Node.js

Je cherche un moyen très simple de stocker unJSONarray de manière persistante sous Node.js . Il n'a pas besoin de fonctionnalités spéciales. Je veux juste mettre un objet JSON et pouvoir le lire au prochain redémarrage du serveur.

(Des solutions comme MongoDB et CouchDB semblent toutes les deux excessives à cette fin.)

35
johnny

Pourquoi ne pas écrire dans un fichier?

// 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

Essayez NeDB: https://github.com/louischatriot/nedb

"Base de données persistante intégrée pour Node.js, écrite en Javascript, sans dépendance (à l'exception des modules npm bien sûr). Vous pouvez la considérer comme un projet SQLite pour les projets Node.js, utilisable avec une simple instruction require. L'API est un sous-ensemble de MongoDB. Vous pouvez l’utiliser comme magasin de données persistant ou en mémoire uniquement. "

7
Ray Hulha

J'ai trouvé une bibliothèque appelée json-fs-store pour sérialiser un objet JavaScript en JSON dans un fichier et le récupérer plus tard. 

Lors de la récupération d'un fichier via la méthode store.load (non décrite dans la documentation pour le moment), il est analysé avec JSON.parse, ce qui est mieux que de faire une require comme dans l'autre réponse:

  • vous obtenez une gestion correcte des erreurs lorsque le contenu est mal formé 
  • si quelqu'un a réussi à insérer du code JavaScript dans le fichier, cela entraînera une erreur d'analyse au lieu de l'exécution du fichier JS.
5
chiborg

Vous pouvez simplement sauvegarder les données JSON dans un simple fichier texte et les lire au redémarrage du serveur.

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

et ensuite travailler avec comme d'habitude. 

2
Soroush Hakami

Si vous recherchez des performances, pensez à: LokiJS

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

http://lokijs.org/#/

2
swapnilagarwal

Bien que LokiJS et NeDB cherchent à avoir plus d'utilisateurs, je viens de rencontrer TaffyDB . Bien que je n’ai pas essayé moi-même, j’ai pensé que je devrais l’ajouter ici par souci d’exhaustivité. 

0
thom_nic