Node.js 为什么在fork上处理来自数据处理器的消息总是空的

Node.js 为什么在fork上处理来自数据处理器的消息总是空的,node.js,fork,Node.js,Fork,计算需要花费很多时间,因此我使用了fork过程,面对来自数据处理器的消息的困难,我需要发送我的计算值作为响应,但是为什么总是将声明的变量totalSum设为空白。检查以下语法 app.js const cluster = require("cluster"); const { fork } = require("child_process"); const path = require("path");

计算需要花费很多时间,因此我使用了fork过程,面对来自数据处理器的消息的困难,我需要发送我的计算值作为响应,但是为什么总是将声明的变量totalSum设为空白。检查以下语法

app.js

 const cluster = require("cluster");
    const { fork } = require("child_process");
    const path = require("path");
    
    exports.get_company_total_sum = async (req, res, next) => {
      try {
        const { hs_object_id: companyId, hs_parent_company_id } = req.query;
        //const companyId = hs_object_id;
        console.log("hs_object_id", companyId);
    
        const processPath = path.join(
          __dirname,
          "..",
          "9-services",
          "tierone_carrier_dataProcess.js"
        );
    
        let totalSum = "";
        const child = fork(processPath);
        child.send({ companyId });

//process the messages coming from the task processor

        child.on("message", (response) => {
          console.log("response::", response.result);
          //return res.json({ message: response.message });
          totalSum = response.result;
        });
    
        //remove previously openned node instance when we finished
        child.on("close", function (msg) {
          this.kill();
        });
    
        return res.json({ "total sum": totalSum });
    };
process.on("message", (payload) => {
  if (payload.companyId !== "") {
    const sum = longComputation(payload);

    process.send({ result: sum });

    process.disconnect();
  }
});

function longComputation(payload) {
  let sum = 0;
  for (let i = 0; i < payload.companyId; i++) {
    sum += i;
  }
  return sum;
}

process.on("uncaughtException", function (err) {
  console.log("Error happened: " + err.message + "\n" + err.stack + ".\n");
  console.log("Gracefully finish the routine.");
});
tierone\u carrier\u dataProcess.js

 const cluster = require("cluster");
    const { fork } = require("child_process");
    const path = require("path");
    
    exports.get_company_total_sum = async (req, res, next) => {
      try {
        const { hs_object_id: companyId, hs_parent_company_id } = req.query;
        //const companyId = hs_object_id;
        console.log("hs_object_id", companyId);
    
        const processPath = path.join(
          __dirname,
          "..",
          "9-services",
          "tierone_carrier_dataProcess.js"
        );
    
        let totalSum = "";
        const child = fork(processPath);
        child.send({ companyId });

//process the messages coming from the task processor

        child.on("message", (response) => {
          console.log("response::", response.result);
          //return res.json({ message: response.message });
          totalSum = response.result;
        });
    
        //remove previously openned node instance when we finished
        child.on("close", function (msg) {
          this.kill();
        });
    
        return res.json({ "total sum": totalSum });
    };
process.on("message", (payload) => {
  if (payload.companyId !== "") {
    const sum = longComputation(payload);

    process.send({ result: sum });

    process.disconnect();
  }
});

function longComputation(payload) {
  let sum = 0;
  for (let i = 0; i < payload.companyId; i++) {
    sum += i;
  }
  return sum;
}

process.on("uncaughtException", function (err) {
  console.log("Error happened: " + err.message + "\n" + err.stack + ".\n");
  console.log("Gracefully finish the routine.");
});
process.on(“消息”(payload)=>{
如果(payload.companyId!==“”){
const sum=长计算(有效载荷);
send({result:sum});
process.disconnect();
}
});
功能计算(有效载荷){
设和=0;
for(设i=0;i