在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。我知道在将值传递给子进程部分时出错,但是解决方案是什么?