Добавить тело в ClientRequest на Электрон

1

Я хотел бы использовать 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: [].

Может кто-нибудь мне помочь? :)

Спасибо!

Теги:
electron

1 ответ

1
Лучший ответ

ClientRequest - это записываемый поток. Способ отправки данных тела в Writable 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);
  • 0
    Спасибо, Андрей! :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню