2016-04-29 64 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 
     }) 
    }