2016-06-23 16 views
-2

NodeJSサーバーから外部サーバーにデータを送信する必要があります。私は多くのコードを試して、これを検索しましたが、適切な動作例が得られなかったり、私の場合は動作しません。ここでnodeJSから外部にデータを送信するにはどうすればよいですか?

は私のコードです:

app.get('/getFrom', function (req, res) { 
var request = require('request'); 

     // Try 1 - Fail 
     /*var options = { 
     url: 'http://example.com/synch.php', 
     'method': 'POST', 
     'body': {"nodeParam":"working"} 

     }; 
     request(options, callback); 
     */ 

     // Try 2 - Fail 
     /* request({ 
      // HTTP Archive Request Object 
      har: { 
       url: 'http://example.com/synch.php', 
       method: 'POST', 
       postData: { 
       params: [ 
        { 
        nodeParam: 'working' 
        } 
       ] 
       } 
      } 
      },callback)*/ 

    function callback(error, response, body) { 
     if (!error && response.statusCode == 200) { 
      console.log("body " + body); // Show the HTML for the Google homepage. 
       res.send(body); 
     } 
     else{ 
      console.log("Error " + error); 
      res.send(error); 
     } 
    } 

/* ------ HTTP ------ */

var postData = querystring.stringify({ 
    'nodeParam' : 'Hello World!' 
}); 

// try 3 - Fail 
/*var optionsHTTP = { 
    hostname: 'http://example.com', 
    port: 80, 
    path: '/synch.php', 
    method: 'POST', 
    headers: { 
    'Content-Type': 'application/x-www-form-urlencoded', 
    'Content-Length': Buffer.byteLength(postData) 
    } 
}; 

var req1 = http.request(optionsHTTP, function(res1){ 
    console.log('STATUS: ' + res1.statusCode); 
    console.log('HEADERS: ' + JSON.stringify(res1.headers)); 
    res1.setEncoding('utf8'); 
    res1.on('data', function(chunk){ 
    console.log('BODY: ' + chunk); 
    }); 
    res1.on('end', function(){ 
    console.log('No more data in response.') 
    }) 
}); 

req1.on('error',function(e){ 
    console.log('problem with request:' + e.message); 
}); 

// write data to request body 
req1.write(postData); 
req1.end();*/ 

/* ------/HTTP ------ */

私はなぜ正確にあなたの要求が失敗した可能性がありますが、これは単純明快サンプルです

+0

あなたの質問を簡素化します。あなたの試行の1つを選択し、コードを列挙して、それがなぜ失敗したのかを教えてください。どのようなエラーメッセージが表示されましたか? – MrWillihog

+0

httpサーバを起動しましたか? [Express.js](http://expressjs.com/)を見てください。 – jhhayashi

答えて

0

私が作業を発見し、解決策テスト:



    request({ 
     url: 'http://example.com/synch.php', //URL to hit 
     qs: {nodeParam: 'blog example', xml: xmlData}, //Query string data 
     method: 'POST', //Specify the method 
    },callback); 

0

わからない間違っているところ私に知らせてください。 NPMでrequestモジュールを使用して:

var request = require('request'); 
 

 
var postData = { 
 
\t name: 'test123' 
 
} 
 

 
request({ 
 
\t url: 'http://jsonplaceholder.typicode.com/posts', 
 
\t method: 'POST', 
 
\t data: JSON.stringify(postData) 
 
}, function(err, response) { 
 
\t if (err) { 
 
\t \t return console.error(err); 
 
\t }; 
 

 
\t console.log(JSON.stringify(response)); 
 
})

このスニペットは、残りのAPIへのリクエストを行い、コンソールに結果を表示します。応答データはresponse.bodyプロパティで利用できます。

+0

実際に私はNodeJs経由でいくつかのデータを投稿しようとしていました。 – eweb

+0

私は変更を反映するために例を更新しました。私はこれがあなたがやろうとしていることだと思います。サーバーからエラーが発生した場合は、おそらくnode.jsコード自体ではなくjsonplaceholder.typicode.comの問題が原因です –

関連する問題