服务器什么时候在Node.js中为请求添加侦听器?

When did server add listener to request in Node.js?

本文关键字:请求 添加 侦听器 什么时候 Node js 服务器      更新时间:2023-09-26
var http = require("http");
http.createServer(function(request, response) {
    request.addListener("data", function(postDataChunk) {
        // some code here
    });
    request.addListener("end", function() {
        // some code here
    });
}).listen(8888);

据我所知,在节点中,当服务器接收到请求时,匿名函数将执行。但是在示例代码中,该函数将为服务器接收到的请求添加侦听器。但是,它确实有效。

我的问题是为什么它有效。服务器何时向节点中的请求添加侦听器?

我不完全清楚你要求帮助理解的过程的具体哪一部分,但这是你的代码如何工作的。

  1. http.createServer()创建一个服务器,您传递给它的回调函数将自动注册为request事件的事件处理程序。

  2. request事件调用它的回调有两个参数,requestresponse对象。request对象类型为http.IncomingMessage,实现了可读流接口。

  3. request回调被调用时,它执行request.addListener('data', ...),这在request参数中为可读流上的传入数据添加了一个侦听器。

  4. 所以,一旦数据在可读流上可用,它就会用该数据块调用侦听器。你可以在node文档中阅读更多关于可读流的信息,以更好地理解它们是如何工作的。

  5. end事件的监听器告诉你可读流何时完成给你它的数据

服务器何时在节点中添加侦听器请求?

每次有一个新的传入http请求到服务器时都会发生这种情况。这就是调用http.createServer()回调的时候。并且,对于每个新的传入请求,将为该回调创建一个新的http.IncomingMessage对象。