我在写入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"]);
})
}
并将完全相同的数组传递给该函数,它不会编写任何内容(但文件已创建),也不会触发err
或finish
事件。
如果有关系,DataHandler方法将包含一个request
模块和一个到另一个API的GET。
问题的任何线索吗?
预先感谢