私は、HerokuインスタンスにデプロイされているExpress/Nodeアプリケーションを持っています。このアプリケーションには、.jsonファイルが必要なPOST APIエンドポイントがあり、データを読み取り、アプリケーションにJSONデータを取り込みます。以下はPOSTリクエストを処理するバックエンドのコードは次のとおりです。予期しない入力の終わり - curl JSON on Express/Node App
router.route('/data')
.post(function (req, res) {
return DataUtils.storeData(req, res);
});
Utils.storeData = function (req, res) {
req.pipe(req.busboy);
req.busboy.on('file', function (fieldname, file, filename) {
file.on('data', function(data) {
var data;
try {
data = JSON.parse('' + data); // quick casting into a String
var numPersonSessionObj = data.length;
...
// etc etc...
我々は以下のcurlコマンドを介して要求を作ってみる:
カール-H "のContent-Length:5567" は、-Fファイルを http://[heroku-instance]/api/data
[email protected]_data/sample_json.jsonサーバが時々正常に動作し、データをアップロードし、他の回、「予期しないエンド入力の」エラーがスローされます。何らかの理由で、使用しているバッファメソッドがすべてのデータを読み取っていないようです。上記のコード(つまりJSON)にdata.length
を記録すると、データの長さが想定よりも小さい場合は常にリクエストが失敗したように見えます。上記のJSONファイルを読んでいるところに何か問題がありますか? Thanks--
より
の値を使用してみたら?あなたはコード行を提供していますが、なぜこれが質問に答えるかについては説明がありません。ありがとうございました。 –