2015-09-01 6 views
13

Birisi, bazı verilerin nasıl iletilip alınacağı da dahil olmak üzere, node.js Express'ten bir posta isteği göndermenin en kolay yolunu gösterebilir mi? PHP'de cURL'ye benzer bir şey bekliyorum.node.js Express'ten bir POST isteği nasıl gönderilir?

+2

[kullanın 'request' İşte

docs

Ve benzeri demodur ] (http://stackoverflow.com/a/28297185/1377002). – Andy

+1

bu http://stackoverflow.com/questions/6819143/curl-equivalent-in-nodejs adresini ziyaret edin –

+0

[http://stackoverflow.com/questions adresinde [HTTP POST isteği nasıl yapılır?]/6158933/nasıl yapılır-yapmak-bir-http-post-in-node-js) – AechoLiu

cevap

2

olarak bir yayın isteği için here tarif:

var http = require('http'); 

var options = { 
    host: 'www.host.com', 
    path: '/', 
    port: '80', 
    method: 'POST' 
}; 

callback = function(response) { 
    var str = '' 
    response.on('data', function (chunk) { 
    str += chunk; 
    }); 

    response.on('end', function() { 
    console.log(str); 
    }); 
} 

var req = http.request(options, callback); 
//This is the data we are posting, it needs to be a string or a buffer 
req.write("data"); 
req.end(); 
+0

akışları, geri çağrıları ile vay vay, ve böyle şeyler hızlı elden olsun. Neredeyse C –

+0

@MuhammadUmer'de çalışmak gibi hissettiriyor. Söz veri arayüzünü kullanırsanız, geri dönüş konusunda daha kolay bir şey olduğunu düşünüyorum. Bu modülü hiç kullanmadım ama istek nesnesi üzerinde söz veren bir “istek-söz” var. – dvhh

2

JQuery Simliar olan superagent kullanın.

var sa = require('superagent'); 
sa.post('url') 
    .send({key: value}) 
    .end(function(err, res) { 
    //TODO 
    }); 
3
var request = require('request'); 
function updateClient(postData){ 
      var clientServerOptions = { 
       uri: 'http://'+clientHost+''+clientContext, 
       body: JSON.stringify(postData), 
       method: 'POST', 
       headers: { 
        'Content-Type': 'application/json' 
       } 
      } 
      request(clientServerOptions, function (error, response) { 
       console.log(error,response.body); 
       return; 
      }); 
     } 

Bunun işe yaraması için, sunucu gibi bir şey olmalı:

var express = require('express'); 
var bodyParser = require('body-parser'); 
var app = express(); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(bodyParser.json()) 

var port = 9000; 

app.post('/sample/put/data', function(req, res) { 
    console.log('receiving data ...'); 
    console.log('body is ',req.body); 
    res.send(req.body); 
}); 

// start the server 
app.listen(port); 
console.log('Server started! At http://localhost:' + port);