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

时间:2016-04-29 22:33:58

标签: 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])显示了文件夹的内容,但是如果我尝试阅读它们,我只是得到了回复&#34;未定义&#34;,任何人都知道为什么会发生这种情况?我试图读取每个文件的数据,基本上后来我要存储它,并发送它,但现在这不是问题,更大的问题是它甚至没有从文件中读取数据:U。

1 个答案:

答案 0 :(得分:1)

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