如何通过 Node.js 执行 mongoDB shell 脚本?

How to execute a mongoDB shell script via Node.js?

我正在处理我的 class 项目,我想在其中演示 mongoDB 分片的使用。我正在使用 mongoDB node.js 本机驱动程序。我知道这个驱动程序中没有分片功能。所以,我必须编写 shell 脚本来进行分片。那么,是否可以像这样以某种方式做到这一点:

节点myfile.js(执行我的shell脚本和运行我的代码)

鉴于您已经有一个 shell 脚本,为什么不通过 Child Process 模块执行它。只需使用以下函数 运行 您拥有的脚本。

child_process.execFileSync(file[, args][, options])

请注意,该脚本应具有 运行 权限(否则使用 chmod a+x script

你为什么不考虑使用 npm 运行 脚本? 如果您希望脚本 运行 独立,请将带有 test/start 或两者的脚本添加到您的程序包 json、

"scripts": {
    "test": "node mytestfile.js",
    "start": "node ./myfile --param1 --param2"
  },

run npm run testnpm run start可以执行脚本文件。这样你甚至可以将参数传递给脚本。

或优雅的child_process方式,

const { exec } = require("child_process");
exec("node myfile.js", (error, stdout, stderr) => {
    if (error) {
        console.log(`error: ${error.message}`);
        return;
    }
    if (stderr) {
        console.log(`stderr: ${stderr}`);
        return;
    }
    console.log(`stdout: ${stdout}`);
});

stderr 和 stdout 将在您进一步构建时显示脚本的进度。 希望这有帮助。