如何从通过execfile
nodeJS 启动的进程将数据发送回节点?最好是 JSON 格式。
这就是我的代码现在的样子:
//index.js NodeJS
var execFile = require('child_process').execFile;
var express = require('express');
app.get('/', function(req, res) {
var lchecker = execFile('/usr/local/bin/casperjs', [myprogram, myargs]);
lchecker.stdout.on('data', function(data) {
var dataObject = JSON.parse(data); //This throws an error.
});
});
我正在调用的 casperjs 脚本返回类似 JSON 的字符串,如下所示:
console.log("[{href: targetLink.href, anchor: targetLink.anchor, isLive: 0, isFollowed: null}]");
这是我得到的错误
当我尝试解析类似 JSON 的字符串时,我收到一条错误消息:
19 Jun 16:46:43 - [nodemon] starting node index.js
undefined:1
[{href: targetLink.href, anchor: targetLink.anchor, isLive: 1, isFollow: 1}]
^
Unexpected token h
所以我的 JSON 是无效的,老实说,我确信有更好的方法可以将数据从 casperjs 发送回节点,但我不知道如何。
我一直在考虑在 express 中创建一个新路由,然后让 casperjs 访问该路由并通过 GET 传递信息,然后在 node.js 中操作该信息。这是实现这一目标的好方法吗?