在Electron上向ClientRequest添加正文

时间:2018-05-02 12:07:03

标签: javascript node.js electron

我想将ClientRequest与Electron一起使用。我想在我的请求中添加一个正文,但我在文档中看不到有关body的信息。

我的请求对象:

  const requestApi = {
    method,
    headers,
    protocol: process.env.API_PROTOCOL,
    hostname: process.env.API_HOSTNAME,
    port: process.env.API_PORT,
    path: `${process.env.API_PATH}${slug}`,
    body,
  };

我的要求:

request.on('response', data => {
  console.log('---------------------');
  console.log(data);

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

  if (data.statusCode === 200) {
    event.sender.send('api-response');
  }
});

request.end();

当我在console.log(数据)时,数据是一个空数组data: []

任何人都可以帮助我吗? :)

谢谢!

1 个答案:

答案 0 :(得分:1)

ClientRequestWritable Stream。将正文数据发送到可写流的方法是使用.write().end()。您可以在API文档中看到这些功能:ClientRequest.write()ClientRequest.end()。参数chunk是您的数据应该去的地方。

在您的示例中,可能如下所示:

const requestApi = {
  method,
  headers,
  protocol: process.env.API_PROTOCOL,
  hostname: process.env.API_HOSTNAME,
  port: process.env.API_PORT,
  path: `${process.env.API_PATH}${slug}`,
};

const request = new ClientRequest(requestApi);

request.on('response', data => { /* ... */ });

request.end(body);