私はend
のjsonを解析していますが、まだこのエラーが発生しています。予期せぬJSON入力の終了
'use strict';
const http = require('http');
const tools = require('./tools.js');
const server = http.createServer(function(request, response) {
console.log("received " + request.method + " request from " + request.headers.referer)
var body = "";
request.on('error', function(err) {
console.log(err);
}).on('data', function(chunk) {
body += chunk;
}).on('end', function() {
console.log("body " + body);
var data = JSON.parse(body); // trying to parse the json
handleData(data);
});
tools.setHeaders(response);
response.write('message for me');
response.end();
});
server.listen(8569, "192.168.0.14");
console.log('Server running at 192.168.0.14 on port ' + 8569);
データがクライアントから送信されている:
var data = JSON.stringify({
operation: "shutdown",
timeout: 120
});
私は正常にJSONを受けるが、私はそれを解析することができません。
更新:
私は全体的にサーバーコードが含まれるように、コードを更新しました。
....
}).on('end', function() {
console.log("body " + body);
//var json = JSON.parse(body); // trying to parse the json
//handleData(json);
});
この
を生成します。これは、しかし:私はこれを取得
....
}).on('end', function() {
console.log("body " + body);
var json = JSON.parse(body); // trying to parse the json
handleData(json);
});
:
は、次のコードを使用して、完全に透明であるために
'JSON.parse'はする必要があります文字列を受け付けます有効なJSON。取得しているエラーは、解析対象が有効なJSONではないことを意味します。文字列化された 'data'変数を使用して' JSON.parse'に渡すと、すべて正常に動作します。 – nem035
私はいくつかのことを試していました。私の質問を更新しました – Shaffanhoon
'body.'が実際に期待していることを確認するために' JSON.parse'を呼び出す前に 'console.log(body);'を追加してみてください。 – Paulpro