3onが指摘したように、POSTリクエストの正しい構文は次のとおりです。
request({ method:"post", url: "server.com", body:"Hello World"}, callback);
便利な方法もあります。
request.post({ url: "server.com", body:"Hello World"}, callback);
しかし、あなたの質問から、あなたはストリーミングしたいようです:
var request = require('request');
var fs = require('fs');
var stream = fs.createWriteStream('file');
stream.write('Hello');
stream.write('World');
fs.createReadStream('file').pipe(request.post('http://server.com'));
アップデート:
- RAMがあれば、ストリームに書き込んだチャンクを好きなように分割できます(4mbはピーナッツですが、v8(ノードの背後にあるjavascriptエンジン)には1.4GBの割り当て制限があることに注意してください) ;
- 上記のコードの一部に見られるように、パイプ
stream.bytesWritten
にどれだけ「書き込んだ」かがわかります。var stream = fs.createWriteStream('file')
ただし、パイプのもう一方の端がどれだけ得られたかはわかりませんが、bitesWrittenを使用するとかなり適切な近似値が得られるはずです。
data
との両方のend
イベントを聞くことができますstream
request.post('http://server.com')