SORU
6 Mart 2012, Salı


HTTP Node.js Express içinde İstek OLSUN

Nasıl düğüm/express kullanarak bir HTTP isteği yapabilir miyim? Başka bir servise bağlanmak istiyorum. Çağrı uyumsuz ve geri uzak sunucu yanıt içeren umuyorum.

CEVAP
6 Mart 2012, Salı


Burada benim bir örnek kod. Uyumsuz ve bir JSON nesnesi döndürür. Herhangi bir istek alabilirim. Not orada daha iyi yollar (sadece bir örnek) - örneğin, yerine bitiştirmek parçalar koymak ve bir dizi içine girmesi vs... Umarım olur başladığın doğru yönde:

var http = require("http");
var https = require("https");

/**
 * getJSON:  REST get request returning JSON object(s)
 * @param options: http options object
 * @param callback: callback to pass the results JSON object(s) back
 */
exports.getJSON = function(options, onResult)
{
    console.log("rest::getJSON");

    var prot = options.port == 443 ? https : http;
    var req = prot.request(options, function(res)
    {
        var output = '';
        console.log(options.host   ':'   res.statusCode);
        res.setEncoding('utf8');

        res.on('data', function (chunk) {
            output  = chunk;
        });

        res.on('end', function() {
            var obj = JSON.parse(output);
            onResult(res.statusCode, obj);
        });
    });

    req.on('error', function(err) {
        //res.send('error: '   err.message);
    });

    req.end();
};

Seçenekleri bir nesne gibi oluşturarak deniyor:

var options = {
    host: 'somesite.com',
    port: 443,
    path: '/some/path',
    method: 'GET',
    headers: {
        'Content-Type': 'application/json'
    }
};

ve bir geri arama işlevi sağlamak.

Bir hizmet, örneğin, geri kalanı üzerinde modül ve bunu talep ediyorum.

    rest.getJSON(options,
        function(statusCode, result)
        {
            // I could work with the result html/json here.  I could also just return it
            console.log("onResult: ("   statusCode   ")"   JSON.stringify(result));
            res.statusCode = statusCode;
            res.send(result);
        });

Eğer ilgilenirsen daha eksiksiz bir örnek var.

GÜNCELLEME:

Burada daha tam entegre örnek: https://github.com/bryanmacfarlane/nodefun

/Express/Hello world bak

Node.js http istekleri geri gönderir, böylece bir geri olarak parse.com kullandığı bir örnek. İşe almak için, /service/secrets.js bu parse.com uygulama kimliği/anahtar gerekiyor

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • RobertDuskin

    RobertDuskin

    12 HAZİRAN 2008
  • RomanAtwood

    RomanAtwood

    18 Kasım 2009