Node基础学习(九):Node的HTTP模块的监听器

Node基础学习系列
上一篇:Node基础学习(八):Node的fs模块之fstat方法

HTTP模块是Node的核心模块,主要提供了一系列用于网络传输的API,这些API大部分位于比较底层的位置,可以让开发者自由地控制整个HTTP的传输过程。

Node基础学习(二):第一个Node应用中,我们已经初步接触了Node的HTTP模块,并使用createServer()方法创建了HTTP服务器。

我们先来回顾一下这个简单的HTTP服务:

//引入htpp模块,并将这个模块赋值给变量http
var http = require('http');

//使用http变量调用createServer()方法,参数为一个回调函数
http.createServer(function (request, response) {

    //使用response返回一个Hello World
    response.end('Hello World');

//这个这个应用的监听端口为8080
}).listen(8080);

// 终端打印如下信息
console.log('服务启动成功!');

我们在这里简单地修改一下这个简单服务,给这个服务添加两个服务监听器,当对应的事件被触发的时候,则会执行预定的代码:

//引入htpp模块,并将这个模块赋值给变量http
const http = require('http');

//使用http变量调用createServer()方法,参数为一个回调函数
const server = http.createServer(function (request, response) {

    //使用response返回一个Hello World
    response.end('Hello World');

});
server.on('connection',function (req,res) {
    console.log('connection');
});
server.on('request',function (req,res) {
    console.log('request');
});
//这个这个应用的监听端口为8080
server.listen(8080)
// 终端打印如下信息
console.log('服务启动成功!');

当我们启动服务,并访问http://localhost:8080/之后,控制台打印出如下信息:

connection
request
request

这是因为HTTP请求会触发connection和request事件,其中connection事件被触发一次,request事件被触发两次(一次是http://localhost:8080/,另一次是favicon.ico的请求)。

猜你喜欢

转载自blog.csdn.net/qq_45193304/article/details/106344048