1

I am having a weird issue writing to a file in NodeJS.

I have this code in my FileHandler.js:

module.exports.writeFile = function (arr) {
    var fs = require('fs');

    console.log(arr);
    var file = fs.createWriteStream(__dirname+'\\test.txt',{encoding: 'utf8'});
    file.on('error', function (err) {
        console.log(err);  });

    file.on("finish", function() {
        console.log("finished");
    });

    arr.forEach(function (item) {
        file.write(item+"\n");
    });

    file.end();
}

If I append

exports.writeFile(["1","2","3"])

To the end of this file and then run node FileHandler.js The file is created correctly.

However, if I call the writeFile function from another .js file as:

var R = require("r-script");
const dataHandler = require("./DataHandler");
const fileHandler = require("./FileHandler");

var out = R(__dirname + "\\apriori.R");

exports.getRules = function () {
    dataHandler.getListOfPageVisitsBySession(1000781912582,1530781912582,function (result){
        //ignored result variable
        fileHandler.writeFile(["1","2","3"]);
    })
}

and passing the exact same array to the function it doesn't write anything (but the file is created), neither fires err or finish event. If it matters, the DataHandler method contains a request module and a GET to another API.

Any clue of the problem?

Thanks in advance

Diogo Santos
  • 780
  • 4
  • 17

0 Answers0