2016-04-29 66 views
0
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。NodeJS FS不返回来自多个文件的数据

+1

添加'的console.log(ERR)''你里面FS .readFile()'回调来查看是否有错误被返回以及错误是什么。始终查看错误值。 – jfriend00

回答

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