Node.js 中的工作进程不写入文件

Mar*_*lin 5 javascript multithreading node.js

我利用集群来推迟应用程序中的工作负载,并且工作人员可能必须执行的一项任务是写入文件。但是,我在让工作线程写入文件时遇到一些问题。以下是我使用的测试用例:

这会工作得很好:

var fs = require('fs');
var path = require('path');
var request = require('request');

var filepath = path.join(__dirname, "image.jpg");
request({url:"http://i.imgur.com/InnEHyN.jpg"}).pipe(fs.createWriteStream(filepath));

var filepath2 = path.join(__dirname, "test.txt");
fs.writeFile(filepath2, "Sample Text");
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从工作线程执行这些操作时,它们不会发生。我没有从控制台收到任何错误或输出,它似乎只是默默地失败了。

var fs = require('fs');
var path = require('path');
var request = require('request');
var cluster = require('cluster');

if(cluster.isMaster) {
  cluster.fork();
}else {
  var filepath = path.join(__dirname, "image.jpg");
  request({url:"http://i.imgur.com/InnEHyN.jpg"}).pipe(fs.createWriteStream(filepath));

  var filepath2 = path.join(__dirname, "test.txt");
  fs.writeFile(filepath2, "Sample Text");
}
Run Code Online (Sandbox Code Playgroud)

另外,如果我使用此处fs-extra找到的库,我可以调用并创建文件。然而,即使那里有一个空文件,我似乎也无法通过管道或使用该函数写入它。fse.ensureFileSync(filepath)fs.writeFile