gpt4 book ai didi

node.js - 如何使用 child_process.exec 访问 node.js 子进程中的命令行参数?

转载 作者:搜寻专家 更新时间:2023-10-31 23:21:56 28 4
gpt4 key购买 nike

我正在尝试在 node.js 中为另一个通过带参数的命令行执行的 node.js 脚本编写测试脚本。当脚本在终端中执行时,可以使用 process.argv[2]、process.argv[3] 等访问参数。但是,当脚本在测试脚本中使用 child_process.exec( ).

目标.js

var arguments = {
arg1: process.argv[2],
arg2: process.argv[3]
};

console.log(arguments.arg1);
// This outputs '100' when target.js is executed from terminal

测试.js

var cp = require('child_process');

cp.exec('node target.js 100 200',
function (err, stdout, stderr) {
if (err) {
console.log(err);
}

console.log(stdout);
// process.argv[2] is undefined when executed as a child process
});

关于如何在通过 child_process 执行时获得与从终端执行时相同的行为有什么建议吗?

最佳答案

您的问题在别处。 (注意: Node 0.6.12)

我用它作为 a.js 运行了一个测试:

console.log(JSON.stringify(process.argv));

并使用下面的启动器:

var cp = require('child_process');

cp.exec('node a.js 100 200',
function (err, stdout, stderr) {
if (err) {
console.log(err);
}

console.log(stdout);
});

我得到相同的预期输出:

joe@toad:~/src$ node a.js 100 200
["node","/home/joe/src/a.js","100","200"]
joe@toad:~/src$ node b.js
["node","/home/joe/src/a.js","100","200"]

关于node.js - 如何使用 child_process.exec 访问 node.js 子进程中的命令行参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20622489/

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