2016-04-03 7 views
0

Ich versuche, die Benutzerdetails aus dem Registrierungsformular an die JSON-Datei anfügen, so dass die Benutzerdetails für die Authentifizierung verwendet werden können. das Problem ist, ich in Code korrekt format.The nicht in der Lage Anfügen an die JSON-Datei bin ich so weit versucht haben,Objekt hat keine Methode push in Knoten js

var filename= "./user_login.json"; 
var contents = fs.readFileSync(filename); 
var jsonContent = JSON.parse(contents); 
//sample data 
var data =[ 
{ 
    "try" : "till success" 
} 
]; 

jsonContent.push(data); 

fs.writeFileSync(filename,jsonContent); 

ich verschiedene Methoden versucht haben, die ich durch googeln und nichts gefunden, bisher funktioniert. Ich möchte, dass die Daten im richtigen Format gespeichert werden. Die meiste Zeit habe ich diesen Fehler wie Objekt hat keine Push-Funktion. Was ist die Alternative dazu? Das richtige Format ich suche ist,

[ 
    user1-details : { 
     //user1 details 
    }, 

    user2-deatils : { 

    }//So on 
] 
+0

Warum nicht einfach 'require ('./ user_login.json')' verwenden, um die JSON-Datei einzulesen und zu analysieren? –

Antwort

2

Objekt hat nicht Push-Funktion, tun Arrays. Ihre json ist auch ungültig, sollte es ein Array sein:

[ // here 
    { 
     //user1 details 
    }, 

    { 
     //So on 
    } 
] // and here 

Jetzt können Sie verwenden, push(). Allerdings data ist ein Array, wenn Sie eine Reihe von Objekten in der JSON-Datei wollen, sollte es ein einfaches Objekt sein:

var data = { 
    "try" : "till success" 
}; 

Sie müssen auch das Objekt stringify, bevor es zurück in die Datei zu schreiben:

fs.writeFileSync(filename, JSON.stringify(jsonContent)); 

Sie berücksichtigen sollten, so etwas wie node-json-db verwenden, wird es zu lesen kümmern uns/Schreiben der Datei (en) und es gibt Ihnen Hilfsfunktionen (save(), push() ...).

Verwandte Themen