diff --git a/nodes/core/storage/50-file.html b/nodes/core/storage/50-file.html
index 7a97710e0..f68a8f50f 100644
--- a/nodes/core/storage/50-file.html
+++ b/nodes/core/storage/50-file.html
@@ -36,7 +36,9 @@
@@ -46,7 +48,7 @@
category: 'storage-output',
defaults: {
name: {value:""},
- filename: {value:"",required:true},
+ filename: {value:""},
appendNewline: {value:true},
overwriteFile: {value:false}
},
diff --git a/nodes/core/storage/50-file.js b/nodes/core/storage/50-file.js
index 34bd586b9..318fc4435 100644
--- a/nodes/core/storage/50-file.js
+++ b/nodes/core/storage/50-file.js
@@ -25,22 +25,28 @@ function FileNode(n) {
this.overwriteFile = n.overwriteFile;
var node = this;
this.on("input",function(msg) {
- var data = msg.payload;
- if (this.appendNewline) {
- data += "\n";
- }
- if (this.overwriteFile) {
- fs.writeFile(this.filename, data, function (err) {
- if (err) node.warn('Failed to write to file : '+err);
- //console.log('Message written to file',this.filename);
- });
- }
- else {
- fs.appendFile(this.filename, data, function (err) {
- if (err) node.warn('Failed to append to file : '+err);
- //console.log('Message appended to file',this.filename);
- });
- }
+ var filename = msg.filename || this.filename;
+
+ if (filename == "") {
+ node.warn('No filename specified');
+ } else {
+ var data = msg.payload;
+ if (this.appendNewline) {
+ data += "\n";
+ }
+ if (this.overwriteFile) {
+ fs.writeFile(filename, data, function (err) {
+ if (err) node.warn('Failed to write to file : '+err);
+ //console.log('Message written to file',this.filename);
+ });
+ }
+ else {
+ fs.appendFile(filename, data, function (err) {
+ if (err) node.warn('Failed to append to file : '+err);
+ //console.log('Message appended to file',this.filename);
+ });
+ }
+ }
});
}