javascript - NodeJS FS 不从多个文件返回数据

标签 javascript node.js

    var market = fs.readdirSync(__dirname+"/c/")
    console.log(market)
    for(i in market){
        console.log(market[i]) // <----- shows contents of folder
        fs.readFile(market[i],'utf-8',function(err,data){
            console.log(data) // <---- retruns undefined 
        })
    }

所以我认为这会容易得多,但显然我在某个地方搞砸了。 如您所见,console.log(market[i]) 显示了文件夹的内容,但是如果我尝试读取它们,我只会返回“未定义”,任何人都知道为什么这正在发生吗?我正在尝试读取每个文件的数据,基本上稍后我将存储它并发送它,但这现在不是问题,更大的问题是它甚至没有从文件中读取数据:U。 p>

最佳答案

您需要提供 readFile 的完整路径,而 readdirSync 仅返回文件名,因此正确的代码是:

   var market = fs.readdirSync(__dirname+"/c/")
    console.log(market)
    for(i in market){
        console.log(market[i]) // <----- shows contents of folder
        fs.readFile(__dirname + "/c/" + market[i],'utf-8',function(err,data) {
            console.log(data) // <---- retruns undefined 
        })
    }

关于javascript - NodeJS FS 不从多个文件返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36948477/

相关文章:

javascript - Nodejs 文件流并发

javascript - Puppeteer 和 JSHandle@node aria-label 如何操作?

javascript - 如何在 NestJS 中使参数成为必需的?

node.js - 如何从 Node.js 应用程序与基于函数的 V8 调试 API 进行对话?

javascript - 在悬停时显示一个 DIV,但在悬停在另一个 DIV 内。使用 CSS

javascript - Monkeypatch 导出函数

JavaScript - 在单个方法中关闭和返回状态的建议

javascript - 将 64 位 Steam ID 转换为 32 位帐户 ID

javascript - 跟踪已创建实例的列表

javascript - 如何突出显示内容中的所有关键字而不是通过单击突出显示? JSP HTML Javascript