nodejs核心模块 http模块 —初探
简介
http
是nodejs
的核心模块,它能让我们能够通过简单的代码创建一个Web服务器,处理http请求。
用http 模块写一个简单的web服务器
1.要点
引入模块 创建服务 开启服务
- 引入http核心模块
- 使用createServer来创建服务
- 使用listener来启动服务
2.操作
第一步:新建一个文件,名为 d:/src/http.js
( 文件名及路径名可以自行设置,建议均不使用中文字符)
第二步:书写代码, 内容如下
// 1. 引入http模块
const http = require('http');
// 2. 创建服务
const server = http.createServer(function(req, res) {
console.log('有人来访问了')
// 向客户端发送内容,并结束本次响应
res.end('hello world');
});
// 3. 启动服务
server.listen(3000, function() {
console.log('服务器开启 端口3000');
});
第三步:运行js代码。
在小黑窗中进入到d盘根目录下的src文件夹,键入命令 node http.js
,此时会弹出一个小黑窗,不要关。
第四步:本地验收
打开一个浏览器页面,输入http://localhost:3000
,观察效果:
-
浏览器中的效果
-
小黑窗中的效果
第五步:共享地址
把localhost改成自己电脑的ip地址,再把这个路径别人(同一个局域网)来访问。
第六步:停止服务
ctrl + c
如果不能访问,有可能需要手动关闭自己计算机的防火墙。
3.工作原理
使用http模块在本机上创建一个虚拟服务器,它来接收浏览器的请求,并给出响应。
注意:
- 小黑窗不要关,它就是服务器,它不会有主动行为(看起来没有任何变化),它在时刻等待客户端的访问。
代码解析
- 引入核心模块,得到的
http
是一个对象。 http.createServer
方法创建一个http服务。参数是一个回调函数:当有http
请求进来时,它会自动被调用。请求一次,它就被调用一次。- 第一个参数:客户端的请求。
- 第二个参数:设置对本次请求的响应。
- res.end() :设置响应体,结束请求。
server.listen()
用来监听端口。- 格式:
server.listen(端口号,[回调函数])
。回调是可选的。 - 说明:
- 如果监听成功,则回调函数会执行一次。
- 如果不成功(例如端口被占用),会报错。
- 格式:
修改代码后要重启
更改res.end()的内容,重启后,再次观察。
- 停止服务: 在小黑窗中按下ctrl+c 停止服务。
- 重启服务:就是重新运行程序(按下向上的箭头,再回车)。
修改了服务器的代码要重启。
4.理解请求和响应
4.1请求
当web服务器就绪之后,如果没有客户端来访问它,它也是不会有任何效果的。也就是说回调函数不会执行。
而每一次的请求,都会导致回调函数要执行一次。
4.2服务器的响应内容格式
res.end()
的格式只是能是buffer
或者是String