我想将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: []
。
任何人都可以帮助我吗? :)
谢谢!
答案 0 :(得分: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);