简体   繁体   English

错误:无法读取未定义的属性“ forEach”

[英]Error : Cannot read property 'forEach' of undefined

I try to read an unformatted document then rewrite it in a good format but when I execute the following code I got an error Cannot read property 'forEach' of undefined (full error below). 我尝试读取未格式化的文档,然后以一种良好的格式重写它,但是当我执行以下代码时,出现错误Cannot read property 'forEach' of undefined (下面是完整错误)。 I don't understand why this error happening and how to resolve it. 我不明白为什么会发生此错误以及如何解决。

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)

I have done some modifications to your code. 我对您的代码做了一些修改。 There are some other things that you need to be careful about like wstream is defined multiple times which may cause unexpected results. 您还需要注意其他一些事情,例如多次定义wstream可能会导致意外结果。

Regarding your issue please try as below; 关于您的问题,请尝试以下操作;

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

For convenience check out the full code block; 为方便起见,请查看完整的代码块;

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();
        }
    });
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM