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
的请求)。