2017-04-20 17 views
0

私のプログラムでfs.readFile()という奇妙な問題が発生しました。このファイルは大きすぎず(サイズは500k)、JSON.stringify(obj)文字列です。私はそれを読んでフロントエンドに渡そうとしています。 fs.readFile( "/ path/filename"、 "utf8"、function(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

私は自分のプログラムで何が間違っているのか分かりました。書き込みファイルが完全に終了しないうちに、読み込みファイルの私のトリガ信号が「あまりにも速く」送られました。私はいくつかのタイムアウトを設定してこの問題を解決したばかりで、完全なJSON文字列を読み込んでオブジェクトに解析することができます。

+0

代わりに約束を使用 –

関連する問題