如何通过 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 test
或npm 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 将在您进一步构建时显示脚本的进度。
希望这有帮助。
我正在处理我的 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 test
或npm 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 将在您进一步构建时显示脚本的进度。 希望这有帮助。