2017-01-11 12 views
1

私のノードサーバーがparseJSONで死んでいるようです。 ログを見て、最後のメッセージは "解析前"であり、 "解析後"には決して印刷されませんでした。奇妙なのは、JSON.parsをtry-catchでラップしたので、どのようにサーバーがクラッシュしたのかわかりません。何かご意見は?JSONの解析でノードサーバーがクラッシュする

logger.print("before parse") 
parseJSON(data) 
logger.print("after parse") 

と私はpareJSON catch例外があります。

function parseJSON(str) { 
    try { 
     var result = JSON.parse(str); 
     return result; 
    } catch (err) { 
     return null 
    } 
} 
+1

'catch'ブロックで' console.error(err) 'を使用し、何が起こったのかを確認してください。 – thelonglqd

+1

' data'は何ですか? –

+1

JSON.parseは同期メソッドです。したがって、大きなJSONオブジェクトを解析する予定の場合は、ストリーミングjsonパーサを使用してください。おそらく、 'json-parse-async'を使用します。 –

答えて

0

parseJSONでコードがクラッシュした場合、私がしようとするだろう:

try { 
    logger.print("before parse") 
    parseJSON(data) 
    logger.print("after parse") 
} catch (e) { 
    console.log(e); 
} 

あなたの関数が例外をキャッチする必要がありますが、これは何が起こるかを示すだろうので、それは奇妙です。私はまた、追加します:

console.log(data.length); 

データのサイズを参照してください。

また、例外をスローせずにJSONを解析するモジュールtryjsonを書きました。あなたはそれを使用することができますが、あなたの関数がクラッシュした場合、おそらく私のモジュールはそれを処理しません。私は実際に何が起こるか知りたいですが。