Простой клиентский запрос Node.js, сбой на Heroku - PullRequest
0 голосов
/ 01 декабря 2011

Я запускаю Node.js на Heroku, и у меня есть простой тестовый URL, настроенный на экспресс, чтобы сделать запрос клиента, но он каждый раз приводит к сбою приложения, и я не уверен, почему.

Я пытаюсь заставить сервер сделать простой вызов GET на https://graph.facebook.com/btaylor

Мое связанное содержимое 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 notfined»как он пытается запустить http.createClient.

1 Ответ

1 голос
/ 01 декабря 2011

Используйте модуль https для node.js для подключения к веб-сайтам 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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...