我目前正在学习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(("runs-服务器已创建
- "listen(("runs-服务器已启动
- 服务器在事件循环中运行,直到I/user退出
- 当存在请求(例如(页面重新加载(时;createServer(("跑步
您的一些解释并不完全是如何工作的。以下是对代码工作方式的更详细的总结。
http.createServer(callback)
被调用- 这将创建一个http服务器对象,并使用该服务器对象配置在每个新传入请求上调用的回调。该函数调用的结果是返回一个
server
对象。服务器尚未运行 - 调用CCD_ 3
- 这会启动您的服务器,以便它现在接受特定端口上的传入TCP连接。当启动服务器的过程完成并且服务器处于活动状态(这是一个异步过程(时,会调用此回调来通知您服务器现在已启动并运行
- 稍后,当到达服务器的传入请求时,服务器后面的本地代码将为nodejs事件循环创建一个事件以进行调度。当事件循环到达该事件时,它将调用您传递给
http.createServer(callback)
的回调,并将回调可以用来响应传入http请求的请求和响应对象传递给它 - 当您从回调返回时,事件循环将能够调度下一个等待运行的事件(可以是nodejs中的任何类型的事件、另一个http请求、计时器、其他网络、磁盘I/O等(