2017-07-26 25 views
0

Ich versuche, ein unformatiertes Dokument zu lesen, dann schreibe es in einem guten Format aber , wenn ich den folgenden Code ausführen, habe ich einen Fehler Cannot read property 'forEach' of undefined (voller Fehler unten). Ich verstehe nicht, warum dieser Fehler passiert und wie man es löst.Fehler: Kann die Eigenschaft 'forEach' von undefined nicht lesen

CODE

const testFolder = '/zip_file\ /sit1_Wave2_Settlement_afx_formula\ \(1\)/data_dictionary/CM.173/'; 

var fs = require('fs'); 
var formatedcode = []; 
fs.readdir(testFolder, (err, files) => { 

    files.forEach(file => { 
     console.log(file); 
     var array = fs.readFileSync(testFolder + file).toString().split("\n"); 
     //console.log("\n\n\n",array); 
     var wstream = fs.createWriteStream(file); 

     for (i in array) { 
     var xml = array[i], 
     pp_xml = require('../pretty-data').pd.xml(xml); 
     formatedcode.push(pp_xml); 
     } 

     for (look in formatedcode) { 
     var wstream = fs.createWriteStream(file); 

     wstream.on('finish', function() { 
      console.log('file has been written'); 
     }); 

     wstream.write(formatedcode[look]); 
     wstream.end(); 
     } 
    }); 
}) 

ERROR

files.forEach(file => {^ 

TypeError: Cannot read property 'forEach' of undefined 
    at fs.readdir (C:\Users\Manoj kumar\Downloads\pretty-data\pretty-data\findingxml.js:5:6) 
    at FSReqWrap.oncomplete (fs.js:123:15) 

Antwort

0

Ich habe einige Änderungen an Ihrem Code. Es gibt einige andere Dinge, die Sie vorsichtig sein müssen, wie wstream mehrfach definiert ist, was zu unerwarteten Ergebnissen führen kann.

In Bezug auf Ihr Problem versuchen Sie bitte wie folgt;

files.forEach((file) => 
{ 
    console.log(file); 

Zur Vereinfachung überprüfen Sie den vollständigen Code-Block aus;

const testFolder = '/zip_file\ /sit1_Wave2_Settlement_afx_formula\ \(1\)/data_dictionary/CM.173/'; 

var fs = require('fs'); 
var formatedcode = []; 
fs.readdir(testFolder, (err, files) => { 

    files.forEach((file) => 
    { 
     console.log(file); 

     var array = fs.readFileSync(testFolder + file).toString().split("\n"); 
     //console.log("\n\n\n",array); 

     var wstream = fs.createWriteStream(file); 
     for (var i in array) { 
      var xml = array[i], 

       pp_xml = require('../pretty-data').pd.xml(xml); 
      formatedcode.push(pp_xml); 

     } 
     for (var look in formatedcode) { 
      wstream = fs.createWriteStream(file); 
      wstream.on('finish', function() { 
       console.log('file has been written'); 
      }); 
      wstream.write(formatedcode[look]); 
      wstream.end(); 
     } 
    }); 
}); 
Verwandte Themen