将值从PhantomJS传递给node.js

我有一个phantomJS脚本,通过一个node.js脚本中的一个 exec()调用执行.
现在我需要从PhantomJS脚本返回一个字符串,以便可以在节点中使用.
有办法实现吗?

节点应用:

child = exec('./phantomjs dumper.js',function (error,stdout,stderr) {
        console.log(stdout,stderr);      // Always empty
    });

dumper.js(Phantom)

var system = require('system');
var page = require('webpage').create();
page.open( system.args[1],function (status) {
    if (status !== 'success') {
        console.log('Unable to access the network!');
    } else {

        return "String"; // Doesn't work
    }
    phantom.exit('String2'); //Doesn't work either
});

解决方法

是的,只需使用JSON.stringify(result)从PhantomJS输出一个JSON字符串,并使用JSON.parse(stdout)在node.js中解析它.

像这样的例子:

Node.js的:

child = exec('./phantomjs dumper.js',stderr);      // Always empty
        var result = JSON.parse(stdout);
    }
);

PhantomJS:

var system = require('system');
var page = require('webpage').create();
page.open( system.args[1],function (status) {
    if (status !== 'success') {
        console.log('Unable to access the network!');
    } else {

        console.log(JSON.stringify({string:"This is a string",more: []}));
    }
    phantom.exit();
});

Here is some boilerplate如何使用PhantomJS刮.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...