【问题标题】:How to save HTTPS post response to global variable in Node如何将 HTTPS 发布响应保存到 Node 中的全局变量
【发布时间】:2020-05-19 14:55:31
【问题描述】:

我正在尝试与 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 之类的全局变量中的内容,但我无法弄清楚如何实现这一点。我将不胜感激任何帮助!

【问题讨论】:

    标签: javascript node.js api http-post


    【解决方案1】:

    请尝试使用global.status = statusCode。 您可以在节点运行时随时访问它,但这被认为是一种反模式。

    【讨论】:

    • 这会用在变量的定义中吗?比如const global.status = statusCode?
    • 不,只是没有const。您为对象global 定义新键status。所以只是global.status = statusCode; 稍后你可以例如console.log(global.status);
    • 通过将该代码添加到请求中,它似乎无法识别它。
    • 这里是更新后的代码:const req = https.request(options, (response) => { console.log(STATUS: ${response.statusCode}); console.log(HEADERS: ${JSON.stringify(response.headers)}); global.status = statusCode;
    • 我也尝试过使用 Object.assign,但似乎也不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 2014-01-24
    相关资源
    最近更新 更多