【Node.js】学习记录7-node里的内置http模块
程序员文章站
2022-04-18 18:31:20
...
前言
node里除了有http模块,还有http2、https模块,具体的api比较多,推荐看文档。
这里就记录一些比较简单初学的使用方式。http模块能够实现简单的服务器,不需要单独去安装这些服务器软件。
url
这篇文章先简单介绍一点url的知识,之后详细内容会更新到【网络基础】这个专栏里。
url就简单的理解为一个网络文件的地址,主要组成部分有:
- 模式/协议(scheme);
- 域名/ip地址;
- 端口;
- 文件路径/文件名(可理解为路由);
- 查询字符串(类似路由参数);
回环地址:所有计算机都有一个指向自己的默认地址,例如127.0.0.1:3000;
本地地址:一般我们启动的本机网络服务都会默认是本地地址,例如localhost:3000,指向127.0.0.1:3000;
简单使用
首先要引入内置http模块
var http = require("http");
然后实例化模块对象
var xxx = http.createServer(function(req, res){
...
})
回调中的两个参数是两个有很多内容的对象,req就是request
请求对象,res就是response
响应对象。这里就简单讲几个api:
req:
req.url // 代表前端发送过来的url
req.method // 获取浏览器发送数据的方式,比如大写的POST、GET
req.on // 用来监听前台发送过来的数据(不包括地址)后,做出反应。
req.on('data',function (chunk) { // 当浏览器有数据发送过来的时候就会触发后面的函数
// 其中chunk参数:表示数据块,浏览器把数据切块来分块发送,比如把username=123&password=123分成75 73 65 72 6e 61 6d 65 3d 31 32 33 26 70 61 73 73 77 6f 72 64 3d 31 32 33来传输
...
})
req.on('end',function () { // 数据接收完成以后触发后面的函数
...
})
res:
res.write() // 向前端发送document.write()
res.end() // 结束发送,必须加
res.setHeader("content-type", "text/html;charset=utf-8") // utf-8解码发送,让res发送给前台的html的内容以utf-8解码,否则会出现乱码
最后要监听端口:
app.listen(端口号) // 在每个实例化html的文件中,都需要一个接口,让服务器来通过接口来访问到这个文件。