Node.js ile harici HTTP istekleri nasıl yapılır [kapalı]


84

Soru oldukça basit. HTTP sorgularını bir arka uç HTTP sunucusuna (PUT, GET ve DELETE istekleri) günlüğe kaydetmek, kimlik doğrulamak ve iletmek için proxy olarak bir Node.js sunucusu kullanmak istiyorum.

Bu amaçla hangi kütüphaneyi kullanmalıyım? Korkarım bir tane bulamıyorum.

Yanıtlar:


136

NodeJS, standart bir modül olarak http.request'i destekler: http://nodejs.org/docs/v0.4.11/api/http.html#http.request

var http = require('http');

var options = {
  host: 'example.com',
  port: 80,
  path: '/foo.html'
};

http.get(options, function(resp){
  resp.on('data', function(chunk){
    //do something with chunk
  });
}).on("error", function(e){
  console.log("Got error: " + e.message);
});

10
resp.setEncoding('utf8');Verileri utf8 dizeleri olarak almak için eklemenizi (veya kullandığınız kodlamayı) tavsiye ederim . Eğer doğru anladıysam, aksi takdirde Buffer nesneleri alırsınız ve çok baytlı bir karakter iki parçaya bölünürse çok baytlı karakterlerle sorun yaşayabilirsiniz. (Sadece bir süreliğine ilgili bir problemi
çözdüm

8
Aslında requestnpm modülünü çok daha fazla kullanmaya başladım.
chovy

7

Ben birleştirmek istiyorum düğüm-http-Proxy ve ekspres .

node-http-proxy, node.js web sunucunuzda aracılığıyla bir proxy'yi destekleyecektir RoutingProxy( başka bir http sunucusu içindeki Proxy istekleri adlı örneğe bakın ).

Özel sunucu mantığınızın içinde, ekspres kullanarak kimlik doğrulaması yapabilirsiniz. Örnek için buradaki kimlik doğrulama örneğine bakın .

Bu iki örneği birleştirmek size istediğinizi vermelidir.


5

Yerleşik httpmodülü kullanarak bir http.request().

Bununla birlikte, API'yi basitleştirmek istiyorsanız, süper ajan gibi bir modül kullanabilirsiniz.


3
Gerçekten çok daha mantıklı api. Düğümü yalnızca düşük seviyeli API sağladığı için suçlamıyorum, ancak veri yığınlarını işlemeye başlamak sadece can sıkıcı.
Laurent Bourgault-Roy

1

node-http-proxy, yukarıda @hross tarafından önerildiği gibi harika bir çözümdür. Düğümü kullanmaya hazır değilseniz , aynı şeyi yapmak için NGINX kullanıyoruz . Düğümle gerçekten iyi çalışıyor. Örneğin SSL isteklerini düğüme iletmeden önce işlemek için kullanıyoruz. Ayrıca önbelleğe alma ve yönlendirme yollarını da idare edebilir. Yaşasın!


0

Bunu yapmak için node.js http modülünü kullanabilirsiniz. Belgeleri Node.js HTTP adresinde kontrol edebilirsiniz .

Sorgu dizesini diğer HTTP Sunucusuna da iletmeniz gerekir. Bunu ServerRequest.url içinde bulundurmalısınız .

Bu bilgilere sahip olduğunuzda, arka uç HTTP Sunucusunu ve içinde sağlayacağınız seçeneklerde bağlantı noktasını iletebilirsiniz. http.request()

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.