Node.js 来自节点的ajax响应

Node.js 来自节点的ajax响应,node.js,jquery,Node.js,Jquery,我正在调用一个节点的js进程来抓取twitter并从数据中创建一个图表 这是密码 var http = require('http'); var url = require('url'); var exec = require('child_process').exec; var fs = require('fs'); var filepath = 'filenamegraph.png'; http.createServer(function(req,res){ var

我正在调用一个节点的js进程来抓取twitter并从数据中创建一个图表

这是密码

var http  = require('http');
var url   = require('url');
var exec  = require('child_process').exec;
var fs    = require('fs');

var filepath = 'filenamegraph.png';

http.createServer(function(req,res){
    var urlstr = url.parse(req.url,true);
    var twit = exec("php -f twitter-scraper.php "+urlstr.query.term ,function(error, stdout, stderr){
        var graphstring = stdout;
        var stream = fs.createWriteStream("graph.txt");
        stream.once('open', function(fd){  
            stream.write(graphstring, function(){
                exec('dot -T png -o filenamegraph.png graph.txt', function(){
                    fs.stat(filepath,function(err,stat){
                        res.writeHead(200,{'Content-Type':'image/png', 'Content-Length': stat.size });
                        fs.readFile(filepath,function(err,file_conts){
                            res.write(file_conts);
                            res.end();
                        });
                    });
                });
            });
        });
    });
}).listen(1337);
所有这一切都很好

现在我称之为:

$.ajax({
    url: 'http://eavesdropper.dev:1337',
    data: { term : $.url.parse().params.term },
    success: function(data) {
        var res = $.parseJSON(data);
        console.log(res);
        $("body").append('<img src="filenamegraph.png" />');
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.log(jqXHR,'errror - ' + textStatus + " - " + errorThrown + ' ||');
    },
    complete: function(jqXHR, textStatus){
        console.log(jqXHR, textStatus)
    }
});
我不知道下一步是什么,所以我非常欣赏任何建议


PS:直接在浏览器中运行脚本会正确处理图形,因此这可以确保返回到ajax调用的数据不受影响。

您的服务器正在交付新创建的图形文件的内容,但您的客户端所做的一切都是尝试将内容当作JSON进行解析(显然不是,这会导致错误消息)然后插入一个
,浏览器将自动从您的服务器获取并显示生成的图像。

是的。我在发布后意识到,但您是正确的-服务器将返回一个图像。ajax请求很重要,因为这是一个更大的信息系统的一个组件,所有这些都需要动态更新。looking在ajax请求下只接受原始图像数据。
Object { readyState=0, status=0, statusText="error"} error - error - ||