2016-08-17 4 views
-1

Je souhaite conserver la mémoire persistante (enregistrer la progression de l'utilisateur) dans un fichier .json dans% AppData%. J'ai essayé de faire cela selon this post, mais cela ne fonctionne pas. À des fins de test, je ne travaille qu'avec le stockage d'un objet.Impossible d'écrire/d'ajouter au fichier JSON dans Node Webkit

Le code ci-dessous ne fonctionne pas du tout. Si j'utilise fs.open(filePath, "w", function(err, data) { ... au lieu de readFile(..., il crée un fichier json dans% AppData%, mais il n'y écrit rien, c'est toujours 0 octet.

var nw = require('nw.gui'); 
var fs = require('fs'); 
var path = require('path'); 

var file = "userdata.json"; 

var filePath = path.join(nw.App.dataPath, file); 

console.log(filePath); // <- This shows correct path in Application Data. 

fs.readFile(filePath ,function (err, data) { 
var idVar = "1"; 
var json = JSON.parse(data); 
json.push("id :" + idVar); 
fs.writeFile(filePath, JSON.stringify(json)); 
}); 

Si quelqu'un a une idée où je suis déconner comme ça, je serais reconnaissant ..

EDIT:

Résolu, grâce à kailniris.

Je cherchais simplement d'analyser un fichier vide

+0

Consultez la console de la page d'arrière-plan à la recherche d'erreurs. Les erreurs de contexte de noeud seront enregistrées là. Faites un clic droit sur la fenêtre puis inspectez la page d'arrière-plan. – kailniris

+0

Uncaught SyntaxError: fin inattendue de l'entrée JSON – angularchobo

+0

Quelle ligne? Il y a un problème avec votre json ou vous voulez analyser une donnée vide comme json. Console.log (données) avant l'analyse – kailniris

Répondre

0

Il n'y a pas JSON dans le fichier que vous essayez de lire. Avant d'analyser les données, vérifiez si le fichier est vide. Si c'est alors créer un json vide, poussez les nouvelles données dedans puis écrivez-le dans le fichier sinon analyser le json dans le fichier.