基本的nodejs服务器设置代码是如何工作的?

pxy2qtax  于 2021-09-23  发布在  Java
关注(0)|答案(1)|浏览(404)

我目前正在学习node.js,希望确保我对下面代码的理解。代码是关于仅使用node.js设置服务器的。

const http = require('http');

// create the server
const server = http.createServer((req, res) => {
  // check request from a client
  if (req.url === '/') {
    // response to the client
    res.end('welcome to my home page');
  } else {
    res.end(`<h1>Page Not Found</h1>`);
  }
});

// start the server
server.listen(5000, () => console.log('server listening on port 5000'));

已注册“createserver()”回调
已注册“listen()”回调
“createserver()”运行-已创建服务器
“侦听()”运行-服务器已启动
服务器在事件循环上运行,直到i/user退出。
当有请求(例如重新加载页面)时,“createserver()”将运行。

vxbzzdmp

vxbzzdmp1#

你的一些解释不太清楚它是如何工作的。下面是关于代码工作原理的更详细的总结。 http.createServer(callback) 被称为。
这将创建一个http服务器对象,并使用该服务器对象配置在每个新传入请求上调用的回调。该函数调用的结果是返回一个 server 对象服务器尚未运行。 server.listen(port, callback) 被称为。
这将启动服务器,以便它现在在特定端口上接受传入的tcp连接。当启动服务器的过程完成且服务器处于活动状态(这是一个异步过程)时,将调用此回调以通知您服务器现在已启动并正在运行。
稍后,当对服务器的传入请求到达时,服务器后面的本机代码将为nodejs事件循环创建一个要分派的事件。当事件循环到达该事件时,它将调用您传递给的回调 http.createServer(callback) 并将请求和响应对象传递给它,回调可以使用这些对象响应传入的http请求。
当您从该回调返回时,事件循环将能够调度下一个等待运行的事件(可以是NodeJ中的任何类型的事件、另一个http请求、计时器、其他网络、磁盘i/o等)。

相关问题