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])显示了文件夹的内容,但是如果我尝试阅读它们,我只会返回“ undefined”,那么有人知道为什么会发生这种情况吗?我正在尝试读取每个文件的数据,基本上稍后我将要存储它并发送它,但这现在不是问题,更大的问题是它甚至没有从文件: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
        })
    }

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

10-08 20:53