วิธีบันทึกการตอบสนองโพสต์ HTTPS ต่อตัวแปรโกลบอลใน Node.js

ฉันกำลังพยายามผสานรวมกับเกตเวย์การชำระเงินใน Node และฉันสามารถโพสต์ข้อมูลได้สำเร็จ แต่ฉันต้องคว้ารหัสสถานะการตอบกลับ HTTP และเก็บไว้ในตัวแปรส่วนกลางเพื่อใช้สำหรับการตรวจสอบ

     _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}`);
});

response.statusCode คือสิ่งที่ฉันกำลังมองหาที่จะยกและเก็บไว้ในตัวแปรส่วนกลางเช่น const status = statusCode แต่ฉันไม่สามารถทราบได้ว่าจะต้องทำอย่างไรจึงจะบรรลุผลสำเร็จ ฉันอยากจะขอบคุณความช่วยเหลือใด ๆ!


person TMG    schedule 19.05.2020    source แหล่งที่มา


คำตอบ (1)


โปรดลองใช้ global.status = statusCode คุณสามารถเข้าถึงได้ตลอดเวลาในขณะที่โหนดกำลังทำงานอยู่ อย่างไรก็ตาม นี่ถือเป็นการต่อต้านรูปแบบ

person E F    schedule 19.05.2020
comment
สิ่งนี้จะถูกใช้ในการนิยามของตัวแปรหรือไม่? เช่น const global.status = statusCode? - person TMG; 19.05.2020
comment
ไม่ เพียงแค่ไม่มี const คุณกำหนดคีย์ใหม่ status สำหรับวัตถุ global ดังนั้นเพียง global.status = statusCode; และหลังจากนั้น คุณก็อาจเป็นตัวอย่าง console.log(global.status); - person E F; 19.05.2020
comment
การเพิ่มรหัสนั้นในคำขอดูเหมือนจะไม่รู้จักรหัสนั้น - person TMG; 19.05.2020
comment
นี่คือโค้ดที่อัปเดต: 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
ฉันได้ลองใช้ Object.assign แล้ว ซึ่งดูเหมือนจะไม่ได้ผลเช่นกัน - person TMG; 19.05.2020
comment
ยังไม่มีโชคอย่างน่าเสียดาย - person TMG; 19.05.2020