2017-07-11 21 views
0

node.jsサーバーに投稿データとして受け取ったJsonデータがあります。Node.jsのjson入力の予期しない終了

しかし、問題は、私が送った文字列を解析することができないことです。これは私のnode.jsサーバーコードです。

res.header("Access-Control-Allow-Origin", "*"); 
    req.on('data',function(data) 
    { 
    var done=false; 
    console.log(data); 
    var schema; 

    schema=JSON.parse(data); 
    } 

ここで、jsonデータ(データ)を解析するとエラーが発生します。

undefined:776 



SyntaxError: Unexpected end of JSON input 
    at JSON.parse (<anonymous>) 
    at IncomingMessage.<anonymous> (/Users/as6/Documents/test/server.js:206:17) 
    at emitOne (events.js:115:13) 
    at IncomingMessage.emit (events.js:210:7) 
    at IncomingMessage.Readable.read (_stream_readable.js:462:10) 
    at flow (_stream_readable.js:833:34) 
    at resume_ (_stream_readable.js:815:3) 
    at _combinedTickCallback (internal/process/next_tick.js:102:11) 
    at process._tickCallback (internal/process/next_tick.js:161:9) 

構文エラーに対してJSONLintを使用してJSONデータを検証しました。しかし、それは絶対に問題ありませんでした。私は何が間違っているのか、それを修正する方法を知らない。

let chunks = []; 

req.on('data', function(data) { 
    chunks.push(data); 
}).on('end', function() { 
    let data = Buffer.concat(chunks); 
    let schema = JSON.parse(data); 
    ... 
}); 

しかし、おそらくあなたはbody-parserを使用して検討する必要があります。

+0

JSON.stringifyを試してから、実際に正しい形式になっているかどうかを確認してください。 はいの場合は、これを試してください: JSON.parse(JSON.stringify(data)) –

答えて

4

dataイベントは、すべてのdata値を収集し、endイベントが火を持っている場合、それらを一緒に連結する必要がありますので、複数回焼成することができます。

+0

ありがとうございます。出来た 。私はこの不動産を見逃していた。 –

関連する問題