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

NodeJS FS not returning data from multiple files

本文关键字:文件 返回 数据 FS NodeJS      更新时间:2023-09-26
    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。

您需要

提供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 
        })
    }