このようなものが役立つかもしれません。
var fs = require('fs');
var writer = {
files: {},
appendFile: function(path, data) {
if(this.files[path] === undefined) {
this.files[path] = {open: false, queue: []};
}
this.files[path].queue.push(data);
if(!this.files[path].open) {
this.files[path].open = true;
this.nextWrite(path);
}
},
nextWrite: function(path) {
var data = this.files[path].queue.shift(),
self = this;
if(data === undefined)
return this.files[path].open = false;
fs.appendFile(path, data, function(err) {
if (err) throw err;
self.nextWrite(path);
});
}
}
fs.appendFileにはバージョン0.8.0のノードが必要ですが、ファイルごとにキューを保持し、追加された順序で追加します。動作しますが、あまり時間をかけませんでした。教育目的でのみ使用してください。
writer.appendFile('test.txt','hello');