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