次のサーバーがあります。
http.createServer(function (req, res) {
fs.mkdir(__dirname + '/output', function (err) {
req.pipe(fs.createWriteStream(__dirname + '/output/file.txt'));
res.end();
});
}).listen(3000);
次に、リクエストを使用してストリームをサーバーにパイプします。
var fs = require('fs');
var request = require('request');
var crs = fs.createReadStream(__dirname + '/file.txt');
var r = request.post('http://0.0.0.0:3000');
crs.pipe(r);
うまくいくこともありますが、ほとんどの場合 /output/file.txt は空です。req.pipe(...) を mkdir コールバックの外に移動すると、毎回動作します。なぜそれが起こっているのか誰か説明できますか?