json - 如何从 casperjs 将数据发送回 Node ?

标签 json node.js express casperjs

如何从通过 nodeJS 中的 execfile 启动的进程将数据发送回 Node ?最好是 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 发送回 Node ,但我不知道该怎么做。

我一直在考虑在express中创建一条新路由,然后让casperjs访问该路由并通过GET传递信息,然后在node.js中操作该信息。这是实现这一目标的好方法吗?

最佳答案

尽管我收到了很好且可行的答案,但我最终还是将所有内容输出到 casperjs 中的标准输出,然后通过 JSON 数组将其发送回 PHP。

所以在 casperjs 中我写了类似这样的东西:

console.log(JSON.stringify(targetLink))

然后在 Node 中,我可以通过 JSON.parse 访问它并以我想要的任何方式操作数据。

编辑:

我经常遇到这种情况,所以或者你可以让 CasperJS POST 将信息发送到网络端点,它有时更干净,但如果你担心安全性,它会增加开销并且您需要确保只有授权的抓取器才能将数据发布到您的端点。

关于json - 如何从 casperjs 将数据发送回 Node ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17201421/

相关文章:

json - 将 JWT 负载转换回结构

node.js - 将 ejs 中的键值数组与组合选定值进行比较

javascript - 尝试删除 Node.js Express MongoDB Jade 应用程序中的条目

node.js - 为每个请求传递参数

node.js - 如何使用 Bookshelf/Knex 在 Postgres 中插入/更新 `ARRAY` 列

javascript - 在Sequelize中使用classMethods有没有办法更简洁?

android - JSONObject 响应为空

javascript - 使用 Angular json + 基于环境在 head 标签中加载第三方 js

json - 如何使用 Flutter 访问 Firestore 中特定配方的 documentId?

Node.js cassandra 连接超时