gpt4 book ai didi

javascript - 如何使用文件系统获取文件列表?

转载 作者:太空宇宙 更新时间:2023-11-04 03:27:46 28 4
gpt4 key购买 nike

我正在尝试获取指定目录中的文件列表,但它抛出错误,任何知道下面的代码中实现的错误是什么。

service.js

var fs = require('fs');
var path = require('path');
var async = require('async');
var filePath = path.resolve('./logs/dit/');

function checkSearchObj () {
fs.readdir(filePath,function (err, files) {
files.forEach(function(file) {
console.log(file);
});
})
}

checkSearchObj();

错误

TypeError: Cannot read property 'forEach' of undefined
at C:\Users\sh529u\WebstormProjects\ulog\app\serverf
s:8:15
at FSReqWrap.oncomplete (fs.js:82:15)

最佳答案

更改此:

function checkSearchObj ()  {
fs.readdir(filePath,function (err, files) {
files.forEach(function(file) {
console.log(file);
});
})
}

对此:

function checkSearchObj ()  {
fs.readdir(filePath,function (err, files) {
if (err) {
console.log('Error:', err);
return;
}
files.forEach(function(file) {
console.log(file);
});
})
}

看看错误是什么。

您需要检查错误,而不是假设没有错误,否则您将尝试访问 undefined variable ,并且您将看到的唯一错误是您访问的是未定义的错误,而不是本例中 err 中的实际错误。

您的回调将获取 errfiles,但不会同时获取两者。

更新:

更改代码以显示错误后,您得到:

错误:{[错误:ENOENT:没有这样的文件或目录,scandir 'C:\Users\WebstormProjects\ulog\app\serverfiles\logs\dit'] errno:-4058,代码:'ENOENT',系统调用:'scandir',路径:'C:\\Users\\sh529u\\WebstormProjects\\ulog\\app\\serverfiles‌​\\logs\\dit'

这意味着程序不显示该目录中的文件,因为不存在该目录。谜团已揭开。现在您可以看到实际检查错误有多么有用。

关于javascript - 如何使用文件系统获取文件列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42442643/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com