2016-07-31 9 views
0

Ich versuche, einen Inhalt in jede Datei in einem Verzeichnis zu schreiben. Meine Idee ist, das Verzeichnis zu lesen und alle Dateien im Verzeichnis aufzulisten.fs.appendfile funktioniert nicht, wenn in Foreach-Schleife

Dann für jede Datei den Speicherort der Datei in der Textdatei als Zeichenfolge anhängen.

Zum Beispiel: Verzeichnis enthält 2 Dateien, Sample2.content1.txt, Sample2.content2.txt.

Ich möchte die sample1.content1.txt lesen und ihre Position in der Datei als location-c: \ sample1.txt schreiben.

Das Format des Textes in der Datei ist

Page 0 -/text.php 
Page 1 -/60893.php 
Page 2 -/1189.php 
Page 3 -/20389.html 

ich auf diese arbeitete aber mir fest, warum die append-Datei den Inhalt in Datei nicht schreiben wird.

var fs = require('fs'); 
fs.readdir('C:/Users/Administrator/Desktop/Project/output',function(err,data) 
{ 
    if(err) throw err; 
    data.forEach(function(file){ 
     //console.log('C:/Users/Administrator/Desktop/Project/output'+file) 
     fs.appendFile('C:/Users/Administrator/Desktop/Project/output'+file,'appending this text to file','utf8',(err)=>{if(err) throw err; console.log('data was appended to '+file)}) 
    }); 
}); 

des Lauf gibt mir keine Fehler und console.log Rückgabe: Daten angehängt wurden Daten an sample2.content1.txt beigefügten wurde

I wan sample2.content2.txt mehr auszuführen Aktionen auf die Datei nach dem String angehängt wird, dh den Text in der Datei analysieren und in JSON-Format usw. konvertieren

Hoffe, Sie können mir helfen.Am neuen zu JS und Node.

Grüße, Jai

+0

Dies ist eine allgemein schlechte Praxis, weil Sie mehrere asynchrone Operationen in einer Schleife und erwarten sie sequenziert werden in der richtigen Reihenfolge, aber es gibt keine Garantie, laufen sie in der richtigen Reihenfolge gehen . – jfriend00

+0

Irgendwelche Ratschläge, wie man das richtig angehen kann, wird großartig sein. Ich bin neu im Node und JS und probiere es gerade aus. – user1222256

Antwort

0

Mein Fehler ... fand es einfach ...

Ich war auf der Suche wurde in den falschen Ordner wie die Daten in die Datei als outputsample2.content1.txt angehängt zu werden, weil ich einen '/' after output/ verpasst

so sollte es

fs.appendFile('C:/Users/Administrator/Desktop/Project/output/'+file,'appending this text to file','utf8',(err)=>{if(err) throw err; console.log('data was appended to '+file)}) 

Hoffnung jemand es nützlich zu finden sein.

Grüße, Jai