错误:无法读取未定义的属性'forEach'
问题描述:
我尝试读取未格式化的文档,然后以好格式重写它,但是当执行下面的代码时,我尝试了 我收到了一个错误Cannot read property 'forEach' of undefined
(下面的完整错误)。 我不明白为什么会发生这种错误以及如何解决它。错误:无法读取未定义的属性'forEach'
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();
}
});
})
错误
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();
}
});
});