nodejs / mongodb:将值传递给exec子进程

时间:2018-07-27 11:41:07

标签: javascript node.js mongodb child-process

在mongodb中保存一些信息后,调用express api时,我正在创建一个子进程。这是api部分

router.get("/create", function(req, res) {

  let Schema = new New({
    Id: crypto.randomBytes(16).toString("hex"),
    Status: "Online"
  });

  Schema.save(function(err) {
    if (err) {
      console.log(err);
    } else {
      let child = exec(`node ${modulepath}`, (error, stdout) => {
        if (error) {
          throw error;
        }
        console.log(child.stdout);
      });

      New.update({
        "botId": Schema.Id
      }, {
        "ProcessId": child.pid
      }).then((err) => {
        if (err) {
          console.log(err);
        } else {
          console.log("pid updated");
        }
      });
      Id = Schema.Id;
      module.exports = {
        Id
      };
    }
  });
});

我在这里想要做的是,在底部,我正在导出一个id,理想情况下应将其导出到childprocess实例,但这没有发生。在子进程中,如果我通过const Id = require("./routes").Id;导入ID,并尝试通过

通过它访问一些信息

await New.findOne({
  "Id": Id
}, function(err, b) {
  if (err) {
    throw err;
  } else {
    //some task
  }
});

我无法访问信息,因为mongodb无法获取ID。我知道在将值传递给子进程部分时出错,但是解决方案是什么?

0 个答案:

没有答案