更新时间:2021-12-01 来源:黑马程序员 浏览量:
下面通过一个案例来演示Node.js中使用HTTP模块构建Web服务器的过程,具体步骤如下:
(1)在Course/code目录下创建目录chapter07。
(2)在chapter07目录下创建文件demo7-1.js,并在该文件下添加如下代码demo7-1.js:
/** * 使用HTTP构建Neb服务器 */ var http = require('http'); // 1.创建一个HTTP服务器 var server = http.createServer(); // 2.监听 请求(request)事件 // request就是一个可读流,用来获取当前与服务器连接的客户端的一些请求报文数据 // response就是一个可写流,用来给客户端Socket发送消息,或者用来发送响应报文 server.on('request', function(request, response) { // 使用HTTP发送响应数据时,HTTP服务器会自动把数据通过HTTP协议包装为一个 // 响应报文然后发送到Socket response.write('hello world'); // 在结束响应之前,可以多次向客户端发送数据 response.write('hello itheima'); // 对于HTTP请求响应模型来说,它们的请求和响应是一次性的 // 也就是说,每一次请求都必须结束响应 // 标识断开当前连接 response.end(); // 在一次HITP请求响应模型中,当结束了响应时,就不能继续发送数据,以下消息不会显示 }); //3.监听端口 server.listen(3000, function()(console.log('server is listening at port 3000'); });
在上述代码中,第6行使用http.createServer()函数创建服务器对象server。在第10行监听server对象的request事件,request事件回调函数的参数为request和response,在第12行和第14行分别使用response.write()函数向客户端发送数据,在结束响应之前可以多次发送。第18行使用response.end()函数结束响应,结束响应后不能再继续发送数据。第22~24行监听端口3000,由于在本机测试,IP地址127.0.0.1。
打开终端,执行demo7-1.js,执行结果如图7-10所示。
打开Chrome浏览器,在地址栏中输入http://127.0.0.1:3000,按【Enter】键,访问结果如图7-11所示。
在图7-11中可以看出,两次调用response.write(O函数的结果全部输出,使用HTTP构建Web服务器已经成功。