2017-06-10 5 views
2

Ich entwickle ein Nodejs-Projekt und bei diesem Problem fest. Ich habe ein leeres Objekt in einer Datei und aktualisiere diesen Objektwert in einer zweiten Datei.Ändern Sie ein Objekt zwischen zwei Dateien

jsonFile.js

var jsonObj = { 



    first: [] 

    , 
    second: [] 


    , 
    third: [], 
}; 


exports.jsonObj=jsonObj; 

pushdata.js

var obj= require('./jsonFile.js'); 
// i'll retrieve data from file and push into the obj... 
// for the sake of simplicity im not writing data fetching code.. 

ojb.jsonObj.first.push("user1"); 

Wie ich dieses Objekt in pushdata.js Datei so aktualisieren, dass es auch Updates/das Objekt ändern in jsonFile.js

+0

erstellen Sie haben Was ist ein JavaScript-Objekt. [Es gibt kein "JSON-Objekt"] (http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/). Nichts in deinem Beispiel hat etwas mit JSON zu tun. –

+0

danke für Ihre Antwort. Wie kann ich dieses Javascript-Objekt aus der Datei pushdata.js aktualisieren? – Alturistic

+0

Was Sie haben, wird nur funktionieren. Objekte werden als Referenzen weitergegeben. Es gibt nur ein einziges Objekt. –

Antwort

2

Der beste Weg, dies zu bewältigen, ist Folgendes zu tun:

  1. ändern jsonFile.js auf eine .json-Datei (Sie es noch benötigen können, wie Sie haben)
  2. aktualisieren, wie Sie haben zum Beispiel ojb.jsonObj.first.push ("Benutzer1");
  3. Schreiben Sie die Änderungen in das Dateisystem.

Hier ist ein Codebeispiel:

jsonFile.json

{ 
    "first": [], 
    "second": [], 
    "third": [] 
} 

pushdata.js

 var fs = require('fs'); 
     var obj = require('./jsonFile.json'); 
     ojb.first.push("user1"); 
     fs.writeFileSync(__dirname + '/jsonFile.json', JSON.stringify(obj, null, 4), 'utf8'); 

Mit writeFileSync der Einfachheit halber aber am besten Dateisystem zu tun, schreibt Verwenden von Async-Funktionalität zu Avo ID-Blockierungscode

+1

Entschuldigung, könnten Sie klären, was Sie meinen? Ist das obige nicht das, was Sie erwartet haben? – carlcheel

+0

Ich habe das erwartet. Jetzt ist es klar für mich. Danke, dass du mein Problem gelöst hast :) – Alturistic

1

you cant‘update jsonFile.js auf diese Weise Datei benötigen, weil zB jedes Mal erstellen, wenn Anruf require() wenn Sie die Datei aktualisieren möchten, müssen Sie json Datendatei erstellen, gelesen, dass JSON-Datei mit fs-Modul und in Javascript-Objekt konvertieren und JavaScript-Objekt zu aktualisieren und dann JSON.stringfy verwenden, um Zeichenfolge zu konvertieren und dann Datei mit FS-Modul zu schreiben.

OR Sie Service in NodeJS für den Austausch von Daten zwischen den Modulen

Verwandte Themen