如何使用child_process.exec访问node.jssubprocess中的命令行参数?

我正在尝试在node.js中编写另一个node.js脚本的testing脚本,该脚本通过带有参数的命令行执行。 在terminal中执行脚本时,可以使用process.argv [2],process.argv [3]等来访问参数。但是,在testing脚本中使用child_process.exec执行脚本时,这些参数不存在)。

target.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 

test.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执行相同的行为的build议,就像我从terminal执行时一样?

你的问题在别处。 (注意:节点0.6.12)

我使用这个testing运行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"]