我想知道在nodejs的官方文档中,response
的Event data
和Event close
在哪里解释。我想知道这些事件是在哪里解释的,这样我就可以了解还有哪些其他事件可以使用。
我正在检查这些官方文档here,但我找不到任何解释,也找不到可以在response
对象上触发的其他事件
我的验证码:
var options = {
protocol:'https:',
host: constants.END_POINT_HOST_JK,
path: constants.END_POINT_PATH_JK,
method:'GET',
headers: {
'Content-Type': 'application/json'
}
};
var callback = (response)=>{
if (response.statusCode !== 200) {
console.error("Did not get an OK from the server. Code:",response.statusCode);
console.error("Did not get an OK from the server. Msg:",response.statusMessage);
res.resume();
return;
}
var data = '';
response.on('data', (chunk)=>{
data += chunk;
});
response.on('close', ()=>{
console.log('Retrieved all data');
console.log(JSON.parse(data));
});
}
var req=https.request(options, callback);
req.on('error', (e) => {
console.error("problem with request:", e);
});
req.end();
2条答案
按热度按时间am46iovg1#
您访问的页面不存在返回首页
https://nodejs.org/api/events.html#eventsonemitter-eventname-options
因此,在节点文档中,在左侧菜单上向下滚动,直到您到达事件:https://nodejs.org/api/events.html,然后有
events.on()
。您的链接指向nodejs文档的
http
部分。尝试使用左侧菜单来访问节点的不同方面。编辑:我上面的回答并没有回答这个问题的整个范围,正如@Quentin所提到的。
我对此做了更多的研究。
使用node.js事件的EventEmitter类,您可以创建自定义事件,这些事件可以被触发,并由
events.on()
函数处理。下面是一个例子:因此,没有可以构建的事件的确定的列表。
然而,在node.js中,有一个预定义的事件列表,可以被
events.on()
函数捕获,并且总是可以被发出。这个列表很多,很难编译(我也找不到它)这里是一个压缩版本,包括更常用的:EventEmitter(events模块)
newListener
:添加新监听器时发出。removeListener
:删除侦听器时发出。HTTP模块
request
:当收到HTTP请求时发出。response
:在发送HTTP响应时发出。close
:服务器关闭时发出。流模块
data
:当数据可从可读流中读取时发出。end
:当可读流中没有更多的数据要消耗时发出。finish
:当所有数据都被刷新到可写流时发出。文件系统(fs模块)
open
:打开文件时发出。close
:关闭文件时发出。子进程模块
exit
:子进程退出时发出。Net模块
connect
:成功建立套接字连接时发出。data
:在套接字上接收数据时发出。end
:套接字的另一端发送FIN数据包时发出。定时器函数(setTimeout,setInterval)
timeout
:定时器功能完成时发出。DNS模块
lookup
:DNS查询完成时发出。流程
exit
:当Node.js进程即将退出时发出。uncaughtException
:发生未处理异常时发出。warning
:发出警告时发出。Readline模块
line
:readline.Interface示例触发line事件时发出。close
:当readline.Interface示例触发close事件时发出。HTTP服务器
checkContinue
:当服务器收到一个请求时发出,该请求的expect为:100-继续标头。clientError
:当客户端连接发出错误时发出。HTTP客户端(http.request)
socket
:当socket被分配给请求时发出。abort
:当请求被中止时发出。流媒体
error
:当流中发生错误时发出。子进程(child_process. spawn,child_process. fork)
message
:当子进程使用process.send()发送消息时发出。DNS Resolver(dns.resolve,dns.lookup)
error
:在DNS解析期间发生错误时发出。EventEmitter
error
:当EventEmitter示例中发生错误时发出。关闭和数据
在问题中,您询问了数据和关闭。
数据:
. on('data ',callback)事件处理程序通常用于Node.js中的可读流。它用于处理“data”事件,该事件在数据可从流中读取时发出。此事件通常用于使用从流中读取的数据并以某种方式处理它。传递给. on('data ',callback)的回调函数将在每次发出' data '事件时以data作为参数调用。
下面是一个示例,演示了如何使用具有可读流的'data'事件处理程序:
只要有数据可从“file.txt”文件中读取,可读流就会发出“data”事件
关闭:
. on('close ',callback)事件处理程序,它通常用于处理' close '事件,该事件在资源(如流或套接字)关闭时发出。'close'事件可以指示资源已成功关闭或在关闭过程中发生错误。
在调用writableStream.end()(完成向流中写入数据并关闭它)之后,将发出'close'事件。执行提供的回调函数。
注意:我知道这并不是你想要的,因为你想要Node.js文档中的信息,但我相信他们对某些问题不是很清楚,我做了很好的工作来解释这些事件,@Quentin做了很好的工作来链接到文档。
isr3a4wc2#
您正在从right place开始。
向下滚动到http.IncomingMessage
看看它的延伸:stream.Readable
按那个
您所询问的事件并不是HTTP响应所独有的,因此它们是从父类继承的,并且文档是链接的而不是重复的。