Node.js 为什么在尝试为节点js中的fs.readdir创建for循环时出错?
下面是我的代码片段。我试图创建一个名为photoarray的数组,它将为每个目录保存数组,其中包含每个目录的所有文件。然而,当我运行这个时,我得到了一个错误。当我在没有for循环和硬代码directoriesparsed as directoriesparsed[0]的情况下运行此程序时,它工作正常。请帮忙,谢谢Node.js 为什么在尝试为节点js中的fs.readdir创建for循环时出错?,node.js,Node.js,下面是我的代码片段。我试图创建一个名为photoarray的数组,它将为每个目录保存数组,其中包含每个目录的所有文件。然而,当我运行这个时,我得到了一个错误。当我在没有for循环和硬代码directoriesparsed as directoriesparsed[0]的情况下运行此程序时,它工作正常。请帮忙,谢谢 var photoarray = []; for(z=0; z<directoriesparsed.length; z++){ var Name = [];
var photoarray = [];
for(z=0; z<directoriesparsed.length; z++){
var Name = [];
var d = "../public/images/Accepted/" + directoriesparsed[z];
console.log(d);
fs.readdir(d, function (err, files) {
if (err) {
throw err;
}
files.map(function (file) {
return path.join(d, file);
}).filter(function (file) {
return fs.statSync(file).isFile();
}).forEach(function (file) {
console.log(file);
Name.push(file);
console.log(Name);
});
photoarray.push(Name);
console.log(photoarray);
});
}
你的错误是什么?有没有堆栈跟踪与该错误相关?DirectoriesPassed中存储了什么?仅路径字符串?解析的目录包含:['Duncan','Emily','Scott'],我得到的错误是:fs.js:981 return binding.stat(pathModule._makeLong(path));^错误:enoint:没有这样的文件或目录,stat'../public/images/Accepted/Scott/duncan1.jpg'在/home/pi/Node/webserverproject/myapp/backendfiles/testingjson2.js:56:25 at Array.filter(native)的Object.fs.statSync(fs.js:981:18)处出现错误(本机)在FSReqWrap.oncomplete(fs.js:117:15)的/home/pi/Node/webserverproject/myapp/backendfiles/testingjson2.js:55:13中,您是否仔细检查了文件路径是否正确?看起来它在
/home/pi/Node/webserverproject/myapp/public/images/Accepted/Scott/duncan1.jpg
返回fs.statSync(file.isFile()代码>正在引发异常,因为路径不存在。也许您想用try/catch块或其他东西来处理这种情况?
fs.js:981 return binding.stat(pathModule._makeLong(path));
^ Error: ENOENT: no such file or directory, stat '../public/images/Accepted/Scott/duncan1.jpg'
at Error (native) at Object.fs.statSync (fs.js:981:18)
at /home/pi/Node/webserverproject/myapp/backendfiles/testingjson2.js:56:25
at Array.filter (native)
at /home/pi/Node/webserverproject/myapp/backendfiles/testingjson2.js:55:13
at FSReqWrap.oncomplete (fs.js:117:15)