node.js [http模块] 创建服务器&获取请求体&设置响应体

274 阅读1分钟

一. 创建 http 服务器

需要进行以下三步:

  • 导入 http 模块
  • 创建服务器对象 http.createServer((request,response)=>{})
  • 监听端口,启动服务

2347.png

注意:

  • HTTP 协议的默认端口号是 80 ,HTTPS 协议的默认端口号是 443
  • HTTP 协议中常用来进行服务器开发的端口号有 3000、8080、8090、9000等

二. 接收并查看接收到的请求报文相关的内容

2349.png

<1> 查看请求体 【借助于buffer】

通过建立通道,来一点一点获取请求体:

request.on('data',chunk=>{})

获取完毕后,关闭通道:

request.on('end',()=>{})

2348.png

<2> 获取请求路径和查询字符串

借助 request.url 属性获取到的 url 是 /anchor?id=222&type=1 的形式。如果我们想要分开获取,或者是获取整理好的查询字符串,应该如何得到呢?

(1) [url模块] 的parse()方法
const url = require('url');
let res = url.parse(request.url); // 返回的是一个对象

2350.png

(2) new URL() 实例化的方式

2351.png

三. 设置响应报文并返回响应

<1> 设置响应状态码 response.statusCode = xxx
<2> 设置响应头信息 response.setHeader('头名':'头值')
<3> 设置响应体

两种方法:response.write()response.end()

(1) response.write('xxx') 可以多次调用,会把设置的内容拼接在一起,作为响应体返回!!!但最后还要调用response.end()。

(2) 直接调用response.end('xxx'),【但需要注意response.end('xxx') 方法只能调用一次】

注意:

  • 响应体的内容会直接渲染在页面中!!
  • response.end() 接收的内容可以是字符串也可以是 buffer 形式的!!【所以,如果想要响应一个html页面,就可以通过读取该文件,然后将读取的结果进行返回】

2352.png