从另一个JS文件调用NodeJS写入文件

时间:2018-07-05 10:17:27

标签: javascript node.js

我在写入NodeJS中的文件时遇到了一个奇怪的问题。

我的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();
}

如果我追加

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

到该文件的末尾,然后运行node FileHandler.js 文件已正确创建。

但是,如果我从另一个.js文件中调用writeFile函数为:

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"]);
    })
}

并将完全相同的数组传递给该函数,它不会编写任何内容(但文件已创建),也不会触发errfinish事件。 如果有关系,DataHandler方法将包含一个request模块和一个到另一个API的GET。

问题的任何线索吗?

预先感谢

0 个答案:

没有答案