我有以下代码可以使用:
var Path = require('path')
var Phantomjs = require('phantomjs2')
var phantomjsPath = Phantomjs.path
var childArgs = [
Path.join(__dirname, 'phantomjs-worker.js'),
'http://...some login url...',
3000, //login timeout
'http://...some address to render as image...',
5000, //address timeout
'...output image file path...',
1000, //page width
1000, //page height
1234 //some id
]
var child = Proc.spawn(phantomjsPath, childArgs, { cwd: process.cwd() })
在phantom-worker.js中:
var argsOffset = 0;
var login = system.args[argsOffset + 1];
var logintimeout = system.args[argsOffset + 2];
var address = system.args[argsOffset + 3];
var addresstimeout = system.args[argsOffset + 4];
var output = system.args[argsOffset + 5];
var pageWidth = parseInt(system.args[argsOffset + 6]);
var pageHeight = parseInt(system.args[argsOffset + 7]);
var pageId = system.args[argsOffset + 8];
...
我需要能够传入
--ignore-ssl-errors=true --ssl-protocol=tlsv1
。
我尝试将这些作为前两个参数添加但是它不起作用。它出于某种原因开始寻找输出图像文件路径,显然会失败。
有没有办法传递这些命令行参数以及脚本及其子参数?
答案 0 :(得分:1)
以下按预期工作。错误不在代码的这一部分。相反,由于内存问题导致幻像进程退出,导致渲染的图像文件无法创建。
var Path = require('path')
var Phantomjs = require('phantomjs2')
var phantomjsPath = Phantomjs.path
var childArgs = [
'--ignore-ssl-errors=true',
'--ssl-protocol=any',
'--web-security=false',
Path.join(__dirname, 'phantomjs-worker.js'),
'http://...some login url...',
3000, //login timeout
'http://...some address to render as image...',
5000, //address timeout
'...output image file path...',
1000, //page width
1000, //page height
1234 //some id
]
var child = Proc.spawn(phantomjsPath, childArgs, { cwd: process.cwd() })
工人:
var webpage = require('webpage'),
system = require('system');
var login = system.args[1];
var logintimeout = system.args[2];
var address = system.args[3];
var addresstimeout = system.args[4];
var output = system.args[5];
var pageWidth = parseInt(system.args[6]);
var pageHeight = parseInt(system.args[7]);
var pageId = system.args[8];