fs.writeFile error

Par stephcache, il y a 10 ans


Javascript NodeJS

Bonjour, j'utilise actuellement node webkit et la fonction d'enregistrement de node js.

Je voudrais faire une animation prendant enregistrement et je tente de détecté la fin de enregistrement en vérifiant si il y a eu une erreur de cette façon:

fs.writeFile ( chemin + '/Desenfumage/xml/' + nom_client + '.xml', xml, 'utf8', function (err) { console.log(err); if(err) { console.log("failed to save"); } else { console.log("succeeded in saving"); } } );

Mon problème est qu'il enregistre mais je n'ai pas de retour. Je vois pas pourquoi, si vous avez déjà eu le cas. J'aimerais bien avoir vos lumière

Merci

10 réponses

Grafikart, il y a 10 ans

Sur le papier le code est bon quand la sauvegarde se fait les logs donnent quoi ? Il t'affiche un truc dans le terminal ?

stephcache, il y a 10 ans

Justement non rien ne s'affcihce dans la concole

orion, il y a 10 ans

Salut,

Je te conseil d'utilisé la méthode suivante et aussi au lieu de faire une concaténation avec + utilise path.join, pour généré correctement le chemin des fichiers afin d'évité les problèmes d'un système d'exploitation à l'autre .

Il faut que tu vérifie que les dossiers sois bien créer pour que tu puisse sauvegardé ton fichier

if (!fs.existsSync(chemin)) { fs.mkdirSync(chemin, function(err) { console.log(err); }); } var filename = nom_client + '.xml'; var savePath = path.join(chemin, 'Desenfumage', 'xml', filename); var content = 'hello'; if (!fs.existsSync(savePath)) { fs.writeFileSync(savePath, content); }
stephcache, il y a 10 ans

Ok mais sa ne me permet pas de faire mon annimation pendant la sauvegarde tous sa ?
J'ai pas de problème d'enregistrement, sa marche de ce côté

betaWeb, il y a 10 ans

Salut,

N'y aurait-il pas un problème de permissions par hasard ?

stephcache, il y a 10 ans

Comment on fait pour savoir si il y a des permissions ?

RK57, il y a 10 ans

Salut,

Si j'ai bien compris la création du fichier fonctionne bien, mais tu veux savoir exactement quand c'est terminé ? Si tu n'as pas de retour d'erreur c'est que ça c'est bien passé. Mais pour pour plus de précisions tu peux utiliser writeStream qui te permettra d'écouter des événements comme "on('finish')", "on('error')" , ...

Si le fichier ne s'enregistre pas bien regarde si tu peux enregistrer dans le répertoire dans lequel tu te trouve, en général rencontrer sous Linux : chmod.

stephcache, il y a 10 ans

je me sert de node webkit dans mon cas.

Tu as décrit ce que je souhaite faire et je confirme que mon fichier est bien enregistré et correcte.

Par conte la fonction writestream je comprend pas bien comme elle marche

betaWeb, il y a 10 ans

@stephcache le writestream te permet d'ouvrir un stream en écriture vers un fichier ;)
Après sois tu utilises les promises, soit les callbacks, tu devrais aller voir du côté de la doc.