【发布时间】:2026-02-21 12:40:02
【问题描述】:
我尝试使用参数设置 NodeJS 子进程。如果我用 node 运行子进程,它工作正常,但如果我用 casperjs 运行,它就不起作用。 我确保 casperjs 运行正常,另一个 casperjs 脚本运行良好。这是我的设置:
父.js
var exec = require('child_process').exec;
exec('node child.js', {
env: {
number: 123
}
}, function(err, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (err !== null) {
console.log('exec error: ' + err);
}
});
parent2.js
var exec = require('child_process').exec;
exec('casperjs child.js', {
env: {
number: 123
}
}, function(err, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (err !== null) {
console.log('exec error: ' + err);
}
});
child.js
var number = process.env.number;
console.log(typeof(number));
number = parseInt(number, 10);
console.log((number));
输出
$ node parent.js
stdout: string
123
stderr:
$ node parent2.js
stdout: Fatal: [Errno 2] No such file or directory; did you install phantomjs?
stderr:
exec error: Error: Command failed:
为什么用casperjs运行子进程时不能使用参数?
【问题讨论】:
-
PhantomJS(和 CasperJS)没有全局
process属性。 -
@ArtjomB。所以它根本不起作用?
-
至少不是这样。在 PhantomJS 中,您需要使用“system”并使用 system.env。只需比较 PhantomJS 和 node 之间的 API。
标签: javascript node.js arguments casperjs child-process