Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 错误:无法读取属性';forEach&x27;未定义的_Javascript_Node.js - Fatal编程技术网

Javascript 错误:无法读取属性';forEach&x27;未定义的

Javascript 错误:无法读取属性';forEach&x27;未定义的,javascript,node.js,Javascript,Node.js,我试着读一个未格式化的文档,然后用一个好的格式重写它 当我执行以下代码时,我遇到一个错误无法读取未定义的属性“forEach”(下面是完整错误)。 我不明白为什么会发生这种错误以及如何解决它 代码 const testFolder = '/zip_file\ /sit1_Wave2_Settlement_afx_formula\ \(1\)/data_dictionary/CM.173/'; var fs = require('fs'); var formatedcode = []; fs.r

我试着读一个未格式化的文档,然后用一个好的格式重写它 当我执行以下代码时,我遇到一个错误
无法读取未定义的属性“forEach”(下面是完整错误)。
我不明白为什么会发生这种错误以及如何解决它

代码

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

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)

我对你的代码做了一些修改。您还需要注意其他一些事情,比如多次定义wstream,这可能会导致意外的结果

关于您的问题,请尝试以下方式

files.forEach((file) => 
{
    console.log(file);
为方便起见,请查看完整的代码块

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