Bagaimana cara menyimpan respons posting HTTPS ke variabel global di Node.js?

Saya mencoba berintegrasi dengan gateway pembayaran di Node dan saya berhasil memposting data, tetapi saya perlu mengambil kode status respons HTTP dan menyimpannya dalam variabel global untuk menggunakannya untuk validasi.

     _doRequest(postData) {
const hostName = XXXXXXXXXXXXXXX;
const path = '/api/transact.php';

postData.security_key = this.security_key;
postData = querystring.stringify(postData);

const options = {
  hostname: hostName,
  path: path,
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'Content-Length': Buffer.byteLength(postData)
  }
};

// Make request to Direct Post API
const req = https.request(options, (response) => {
  console.log(`STATUS: ${response.statusCode}`);
  console.log(`HEADERS: ${JSON.stringify(response.headers)}`);

  response.on('data', (chunk) => {
    console.log(`BODY: ${chunk}`);
  });
  response.on('end', () => {
    console.log('No more data in response.');
  });
});

req.on('error', (e) => {
  console.error(`Problem with request: ${e.message}`);
});

respon.statusCode adalah apa yang ingin saya angkat dan simpan dalam variabel global seperti const status = statusCode, tetapi saya tidak tahu cara mencapainya. Saya akan sangat menghargai bantuan apa pun!


person TMG    schedule 19.05.2020    source sumber


Jawaban (1)


Silakan coba gunakan global.status = statusCode. Anda selalu dapat mengaksesnya, saat node sedang berjalan, namun ini dianggap sebagai antipattern.

person E F    schedule 19.05.2020
comment
apakah ini akan digunakan dalam definisi variabel? seperti const global.status = statusCode? - person TMG; 19.05.2020
comment
Tidak, hanya tanpa const. Anda menentukan kunci baru status untuk objek global. Jadi global.status = statusCode; saja, dan nanti misalnya console.log(global.status); - person E F; 19.05.2020
comment
Dengan menambahkan kode itu ke permintaan, sepertinya kode tersebut tidak dikenali. - person TMG; 19.05.2020
comment
Berikut kode yang diperbarui: const req = https.request(options, (response) => { console.log(STATUS: ${response.statusCode}); console.log(HEADERS: ${JSON.stringify(response.headers)}); global.status = statusCode; - person TMG; 19.05.2020
comment
Saya juga telah mencoba menggunakan Object.assign, yang sepertinya juga tidak berhasil. - person TMG; 19.05.2020
comment
Sayangnya masih belum beruntung. - person TMG; 19.05.2020