2017-04-20 72 views
0

我在程序中遇到了一個奇怪的fs.readFile()問題。該文件不大(只有500k大小),它是一個JSON.stringify(obj)字符串。我正試圖將其讀出並傳遞給前端。 在fs.readFile(「/ path/filename」,「utf8」,函數(e,data){})的回調中,我只有一個完整的字符串。fs.readFile()沒有讀取整個文件,每次讀取的內容都丟失了幾個部分

fs.readFile("/path/filename",'utf8', function (err,data) { 
      if(err) { 
       throw err; 
      } else { 
       let str = JSON.parse(data); // it will throw error by saying "SyntaxError: Unexpected end of JSON input" 
      } 
     }); 

您遇到過這個問題嗎?讀取整個/完整文件的解決方案是什麼? PS:我手動檢查了文件內容,很不錯,並且完成了JSON字符串。

+0

當你說你手動檢查文件,你自己這樣做,或使用像http://jsonlint.com/ 只是試圖排除它。 –

+0

@Alec Bennett,我用崇高的文本編輯器來打開文件並檢查文件內容,這是一個完整的json字符串。這很好。 – Robin

回答

0

我剛想出我在程序中做了什麼錯誤。在寫入文件沒有完全完成之前,我的讀取文件的觸發信號被「發送得太快」。我設置了一些超時只是100ms解決了這個問題,我可以讀出完整的json字符串來解析對象。

+0

反而使用諾言 –