在Node中检测writeStream的结束

这是我得到的,而且我一直在收到一个错误,因为文件不存在,当我只是顺序执行。

如何在writeStreamclosures时触发一个动作?

var fs = require('fs'), http = require('http'); http.createServer(function(req){ req.pipe(fs.createWriteStream('file')); /* i need to read the file back, like this or something: var fcontents = fs.readFileSync(file); doSomethinWith(fcontents); ... the problem is that the file hasn't been created yet. */ }).listen(1337, '127.0.0.1'); 

可写入的数据stream具有在数据刷新时发出的结束事件。

所以试试以下;

 var fs = require('fs'), http = require('http'); http.createServer(function(req, res){ var f = fs.createWriteStream('file'); f.on('finish', function() { // do stuff res.writeHead(200); res.end('done'); }); req.pipe(f); }).listen(1337, '127.0.0.1'); 

虽然我不会重读这个文件。 您可以使用通过创build一个stream处理器。