2017-08-02 7 views
1

httpでJSONファイルを送信しています。このファイルは、express-fileuploadミドルウェアを使用してreq.filesにあります。私はバッファリングされたデータとしてファイルを取得しています。ファイルをJSONオブジェクトに変換したいと思います。印刷されたときバッファされたファイルデータをJsonオブジェクトに変換する:express-fileupload

app.post('/start', function(req, res){ 
    if(!req.files.seed) 
     res.status(400).send("Please upload the seed file"); 

    var file = req.files.seed; 
    var obj = //Convert the file to JSON object and send it to create instance; 
    instance.createInstance(obj); 
    res.status(200).send("Started....");  
}); 

、ファイルはこの

{ name: 'seed.json', 
    data: <Buffer 7b 0d 0a 09 22 61 72 72 61 79 22 3a 20 5b 20 31 2c 20 31 20 5d 2    c 0d 0a 09 22 72 65 63 75 72 72 65 6e 63 65 22 3a 20 7b 0d 0a 09 09 22 73 65 63    6f 6e ... >, 
    encoding: '7bit', 
    mimetype: 'application/json', 
    mv: [Function: mv] } 

何かのように見える私はJSON.parse(file)を使用してみましたが、でSyntaxError:1位のJSON中のO予期しないトークンがポップアップ表示されます。

私も

var text = file.toString(file,'utf8') 
var obj = JSON.parse(text) 

を使用して文字列に変換使用してみましたが、これも動作するようには思えません。このオブジェクトのプロパティはアクセス時には未定義です。

JSONファイル構造。

{ 
    "array": [ 1, 1 ], 
    "recurrence": { 
     "second": 50, 
     "minute": null, 
     "hour": null, 
     "dayOfweek": null 
    }, 
    "campaign": { 
     "sender": "StartUp India Yatra", 
     "email": "[email protected]", 
     "subject": "{Invitation} StartUp India Yatra Chapter", 
     "title": "StartUp India Yatra Campaign" 
    }, 
    "condition": { 
     "open": { 
      "greaterThanEqual": 1, 
      "lessThan": 2 
     }, 
     "campaignSummary": null 
    }, 
    "textPath": "../template.txt", 
    "htmlPath": "../template.html", 
    "path": "../emailer/index.js" 
    "retailerId": "4" 
} 

答えて

1

デバッグで提示するものを考えると、あなたのエンコーディングがutf8しかし7bitではありません。したがって、適切なデコードのためには、コードを少し変更する必要があります。あなたはJSON.parse問題がないかどうかを確認するためにutf8ascii econdingsで遊ぶことができ

var file = req.files.seed; 
var obj = JSON.parse(file.data.toString('ascii')); 

// ... do your creation logic 

任意の方法。

関連する問題