简单的Node.js客户端请求在Heroku上崩溃

时间:2011-12-01 07:18:59

标签: node.js express

我正在Heroku上运行Node.js,我在express上设置了一个简单的测试网址来发出客户端请求,但每次都会崩溃应用程序,我不知道为什么。

我正在尝试让服务器对https://graph.facebook.com/btaylor

进行简单的GET调用

我的相关server.js内容:

app.get('/test', function(request, response) {
    var http = require('http');
    var test_client = http.createClient(443, "graph.facebook.com", true);

    var facebook_request = test_client.request("GET", "/btaylor", {
        "host":"graph.facebook.com"
    });

    facebook_request.on('response',function(facebook_response){
        facebook_response.on('data',function(chunk){
            console.log(chunk);
        });
        facebook_response.on('end', function() {
            console.log("DONE");
        });
    });
    facebook_request.end();
});

这看起来非常简单,但每次访问服务器/测试时它都会崩溃服务器。

我知道我正在使用正确的代码,因为如果我删除了例如“var http = ...”这一行,我会在尝试运行http.createClient时获得“未定义的http”。 / p>

1 个答案:

答案 0 :(得分:1)

使用node {js的https模块连接到https网站。对于简单的请求数据,您的方式过于复杂。

var express = require("express");
var app = express.createServer();

app.get('/test', function(request, response) {
    var https = require('https');

    response.writeHead(200);
    https.get({ host: 'graph.facebook.com', path: '/btaylor' }, function (res) {
        console.log(res);
        response.end(res.body);
    });
});

app.listen(process.env.PORT);

您也可以考虑使用request