使用 CasperJs 的子进程 Node.js:找不到模块 'casper';要求声明
Child Process Node.js with CasperJs: Cannot find module 'casper'; require statement
我不确定我是否缺少对 'require' 的一般理解,但是如果我尝试将 casperJs 包含到节点子进程中,我将无法使用模块 casper。
parent.js
var exec = require('child_process').exec;
for (var i = 0; i < 3; i++) {
exec('node child.js', {},
function(err, stdout, stderr) {
if (err) {
throw err;
}
console.log(stdout);
}
);
};
child.js
var casper = require('casper').create({
timeout: 180000
});
var meteorUrl = "http://hiddenURL/";
casper.start(meteorUrl, function(response) {
var _status = response.status;
if (_status == '200') {
this.echo("Page: " + meteorUrl + " loaded.");
} else {
this.die("Page not loaded! [" + _status + "]", 1);
}
});
casper.run();
航站楼
$ casperjs --version
1.1.0-beta3
$ casperjs child.js
Page: http://hiddenURL/ loaded.
$ node parent.js
Error: Cannot find module 'casper'
CasperJS 不是 node.js 模块,这正是错误消息的实际含义。它是一个独立的程序,为了方便起见,只能通过 NPM 安装。
改变
exec('node child.js', {},
到
exec('casperjs child.js', {},
我不确定我是否缺少对 'require' 的一般理解,但是如果我尝试将 casperJs 包含到节点子进程中,我将无法使用模块 casper。
parent.js
var exec = require('child_process').exec;
for (var i = 0; i < 3; i++) {
exec('node child.js', {},
function(err, stdout, stderr) {
if (err) {
throw err;
}
console.log(stdout);
}
);
};
child.js
var casper = require('casper').create({
timeout: 180000
});
var meteorUrl = "http://hiddenURL/";
casper.start(meteorUrl, function(response) {
var _status = response.status;
if (_status == '200') {
this.echo("Page: " + meteorUrl + " loaded.");
} else {
this.die("Page not loaded! [" + _status + "]", 1);
}
});
casper.run();
航站楼
$ casperjs --version
1.1.0-beta3
$ casperjs child.js
Page: http://hiddenURL/ loaded.
$ node parent.js
Error: Cannot find module 'casper'
CasperJS 不是 node.js 模块,这正是错误消息的实际含义。它是一个独立的程序,为了方便起见,只能通过 NPM 安装。
改变
exec('node child.js', {},
到
exec('casperjs child.js', {},