gpt4 book ai didi

javascript - Node.JS 中 child_process 的 execFile 中的异步函数

转载 作者:行者123 更新时间:2023-12-03 09:33:30 26 4
gpt4 key购买 nike

在node.js(casperJS脚本)文件中,模块child_process中的函数execFile用于运行脚本mongoScript.js访问 Mongodb 数据库集合。

execFile("node", 'mongoScript.js', null, function (err, stdout, stderr) {
console.log("execFileSTDOUT:", stdout);
console.log("execFileSTDERR:", JSON.stringify(stderr));
finished = true;
});

其中mongoScript.js包含异步函数collection.find

var mongojs = require('mongojs')
var db = mongojs()
var collection = db.collection('myCollection')

collection.find({}, function(err, docs) {
console.log('done')
db.close()
})

问题:collection.find 进行更改以打印 done 之前,脚本似乎已退出。我们如何让它等待collection.find完成运行?

最佳答案

作为documentation说,execFile 函数的 args 参数应该是一个数组:

execFile("node", ['mongoScript.js'], null, function (err, stdout, stderr) {
console.log("execFileSTDOUT:", stdout);
console.log("execFileSTDERR:", JSON.stringify(stderr));
finished = true;
});

如果它不是数组,JavaScript 可能会尝试将字符串拆分为数组,在这种情况下,实际上会调用 node m o n g o ...

关于javascript - Node.JS 中 child_process 的 execFile 中的异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31413514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com