2017-11-29 5 views
0

このコードを使用して画像をtest.pngファイルに保存しようとしています。NodeJS highchart save png

var request = require('request'); 

var headers = { 
    'Content-Type': 'application/json' 
}; 

var dataString = '{"infile":{"title": {"text": "Steep Chart"}, "xAxis": {"categories": ["Jan", "Feb", "Mar"]}, "series": [{"data": [29.9, 71.5, 106.4]}]},"outfile":"test.png"}'; 

var options = { 
    url: 'http://127.0.0.1:7801', 
    method: 'POST', 
    headers: headers, 
    body: dataString 
}; 

function callback(error, response, body) { 
    console.log(body); 
} 

request(options, callback); 

このコードの問題点を教えてください。 outfile test.pngは生成されません。

+0

このコードは、サーバーにいくつかのデータを送信します。このサーバが何をするかは不明です。 – LMokrane

答えて

1

あなたの画像は、callback機能のbodyオブジェクトにあるはずです(私はあなたのサーバが正常に動作していると想定しています)。

これでファイルシステムを保存する必要があります。なお、このように行うことができます。私はbase64エンコーディング(b64)ためdataStringにフラグを追加

function callback(error, response, body) { 
    require("fs").writeFile("out.png", body, 'base64', function(err) { 
    console.log(err); 
    }); 
    console.log(error); 
} 

。私はbase64を使用していたので、バイナリファイルを受信して​​いる間にエンコードの問題があり、うまくいきました。

var dataString = '{"infile":{"title": {"text": "Steep Chart"}, "xAxis": {"categories": ["Jan", "Feb", "Mar"]}, "series": [{"data": [29.9, 71.5, 106.4]}]},"outfile":"test.png", "b64": true}'; 

あなたはAPIにこのフラグの詳細を見つけることができます:https://github.com/highcharts/node-export-server/blob/master/README.md