Data POST dengan modul permintaan pada Node.JS


138

Modul ini adalah 'request https://github.com/mikeal/request

Saya pikir saya mengikuti setiap langkah tetapi saya melewatkan satu argumen ..

var request = require('request');
request.post({
        url: 'http://localhost/test2.php',
         body: "mes=heydude"
         }, function(error, response, body){
            console.log(body);
    });

di sisi lain saya punya

echo $_POST['mes'];

Dan saya tahu php itu tidak salah ...


Mengapa tidak digunakan http.requestsecara langsung? Saya merasa tubuh tidak memetakan ke parameter querystring seperti itu. Cobaurl: 'http://localhost/test2.php?mes=heydude'
Raynos

Jawaban:


202

EDIT: Anda harus memeriksa Needle . Ini melakukan ini untuk Anda dan mendukung data multi bagian, dan banyak lagi.

Saya menemukan bahwa saya kehilangan sebuah header

var request = require('request');
request.post({
  headers: {'content-type' : 'application/x-www-form-urlencoded'},
  url:     'http://localhost/test2.php',
  body:    "mes=heydude"
}, function(error, response, body){
  console.log(body);
});

6
Ingatlah untuk JSON.stringifydata Anda jika Anda mengirim'content-type': 'application/json'
Derek Soike

79

Saat menggunakan requestuntuk http POST Anda dapat menambahkan parameter dengan cara ini:

var request = require('request');
request.post({
  url:     'http://localhost/test2.php',
  form:    { mes: "heydude" }
}, function(error, response, body){
  console.log(body);
});

43

Saya harus memposting pasangan nilai kunci tanpa formulir dan saya dapat melakukannya dengan mudah seperti di bawah ini:

var request = require('request');

request({
  url: 'http://localhost/test2.php',
  method: 'POST',
  json: {mes: 'heydude'}
}, function(error, response, body){
  console.log(body);
});

37

Jika Anda memposting tubuh json, jangan gunakan formparameter. Menggunakan formakan membuat array menjadi field[0].attribute, field[1].attributedll. Sebagai gantinya, gunakan bodyseperti itu.

var jsonDataObj = {'mes': 'hey dude', 'yo': ['im here', 'and here']};
request.post({
    url: 'https://api.site.com',
    body: jsonDataObj,
    json: true
  }, function(error, response, body){
  console.log(body);
});

"jsonDataObj" harus dirangkai (JSON.stringify (...)) jika tidak maka crash
Dokter

Sebenarnya milik saya crash jika Anda merangkainya. Ini mungkin tergantung bagaimana server penerima disiapkan.
Andrew

1
Terima kasih atas jawaban anda. Di mana saya dapat menemukan dokumen untuk ini? Karena saya meragukan metode posting, tetapi dokumen di Github tidak cukup untuk memperbaiki masalah ini.
Langit

16
var request = require('request');
request.post('http://localhost/test2.php', 
    {form:{ mes: "heydude" }}, 
    function(error, response, body){
        console.log(body);
});

12
  1. Instal modul permintaan, menggunakan npm install request

  2. Dalam kode:

    var request = require('request');
    var data = '{ "request" : "msg", "data:" {"key1":' + Var1 + ', "key2":' + Var2 + '}}';
    var json_obj = JSON.parse(data);
    request.post({
        headers: {'content-type': 'application/json'},
        url: 'http://localhost/PhpPage.php',
        form: json_obj
    }, function(error, response, body){
      console.log(body)
    });
    

Selain kesalahan dalam string json, yang ini melakukan trik untuk saya! Perhatikan bahwa bagian "formulir" memiliki objek yang diteruskan ke sana, jadi Anda bisa mendefinisikan semua yang ada di sana sebagai objek untuk memulai dan tidak melakukan pekerjaan persiapan itu
rgbflawed

0

Saya harus mendapatkan data dari POSTmetode PHPkode. Apa yang berhasil bagi saya adalah:

const querystring = require('querystring');
const request = require('request');

const link = 'http://your-website-link.com/sample.php';
let params = { 'A': 'a', 'B': 'b' };

params = querystring.stringify(params); // changing into querystring eg 'A=a&B=b'

request.post({
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, // important to interect with PHP
  url: link,
  body: params,
}, function(error, response, body){
  console.log(body);
});

-2

Saya sangat merekomendasikan axios https://www.npmjs.com/package/axios menginstalnya dengan npm atau benang

const axios = require('axios');

axios.get('http://your_server/your_script.php')
    .then( response => {
    console.log('Respuesta', response.data);
    })
    .catch( response => {
        console.log('Error', response);
    })
    .finally( () => {
        console.log('Finalmente...');
    });
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.