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