Skip to content

Commit 160c27c

Browse files
author
Dave Conway-Jones
committed
file node - close files when required
1 parent a6a9025 commit 160c27c

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

nodes/core/storage/50-file.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,24 +59,27 @@ module.exports = function(RED) {
5959

6060
while (node.data.length > 0) {
6161
if (this.overwriteFile === "true") {
62-
node.wstream = fs.createWriteStream(filename, { encoding:'binary', flags:'w' });
62+
node.wstream = fs.createWriteStream(filename, { encoding:'binary', flags:'w', autoClose:true });
6363
node.wstream.on("error", function(err) {
6464
node.error(RED._("file.errors.writefail",{error:err.toString()}),msg);
6565
});
66+
node.wstream.write(node.data.shift(), function() { node.wstream.end(); });
6667
}
6768
else {
68-
if (!node.wstream) {
69-
node.wstream = fs.createWriteStream(filename, { encoding:'binary', flags:'a' });
69+
if ((!node.wstream) || (!node.filename)) {
70+
node.wstream = fs.createWriteStream(filename, { encoding:'binary', flags:'a', autoClose:true });
7071
node.wstream.on("error", function(err) {
7172
node.error(RED._("file.errors.appendfail",{error:err.toString()}),msg);
7273
});
7374
}
75+
if (node.filename) { node.wstream.write(node.data.shift()); }
76+
else { node.wstream.write(node.data.shift(), function() { node.wstream.end(); }); }
7477
}
75-
node.wstream.write(node.data.shift());
7678
}
7779
}
7880
});
7981
this.on('close', function() {
82+
if (node.wstream) { node.wstream.end(); }
8083
node.status({});
8184
});
8285
}

0 commit comments

Comments
 (0)