Почему этот пример кода кластера узлов, взятый с веб-сайта nodejs, не работает в рабочей среде?
Ссылка на пример кода: https://nodejs.org/api/cluster.html#cluster_cluster
const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
console.log(`Master ${process.pid} is running`);
// Fork workers.
for (let i = 0; i < 2; i++) { // changed from numCPUs to 2
cluster.fork();
}
cluster.on('exit', function(worker) {
console.log(`worker ${worker.id} died...`);
cluster.fork(); // reset
});
} else {
// Workers can share any TCP connection
// In this case it is an HTTP server
http.createServer((req, res) => {
res.writeHead(200);
res.end('hello world\n');
}).listen(8000);
console.log(`Worker ${process.pid} started`);
}
Он будет работать нормально, используя команду node server.js
Однако, если он собран с использованием babel build
, а затем запущен, произойдет сбой с ошибкой ниже. То же самое при развертывании в Heroku. Как я могу сделать эту работу в производстве?
Error: Cannot find module '/app/server/undefined'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Function.Module.runMain (module.js:693:10)
at startup (bootstrap_node.js:191:16)
at bootstrap_node.js:612:3