【笔记】Nodejs的Web服务器

前言

Nodejs通过http模块实现Web服务器

引入依赖

1
const http = require("http");

创建Web服务器对象

  • 创建Web服务器对象,启动Web服务器,并监听端口
1
2
3
4
const app = http.createServer(function (request, response) {
response.end();
});
app.listen(8080);
1
2
3
4
5
6
const app = http.createServer(function (request, response) {
response.end();
});
app.listen(8080, function () {
console.log("http://127.0.0.1:8080");
});
1
2
3
4
5
6
const app = http.createServer(function (request, response) {
response.end();
});
app.listen(8080, "0.0.0.0", function () {
console.log("http://127.0.0.1:8080");
});

处理请求

  • request对象的本质是读取流

获取请求行

获取请求方法

1
const method = request.method;

获取请求URL

1
const urlString = request.url;
解析URL
1
2
3
const url = require("url");

const urlInfo = url.parse(request.url);
通过URL手动解析query
1
2
3
4
5
const url = require("url");
const queryString = require("queryString");

const urlInfo = url.parse(request.url);
const queryInfo = queryString.parse(urlInfo.query);

获取请求头

1
const value = request.headers["key"];

获取请求体

1
2
3
request.on("data", function (data) {
...
});

处理响应

  • response对象的本质是写入流

设置相应行

设置响应状态码

1
response.statusCode = 200;
1
response.writeHead(200);

设置响应头

<key>:响应头键
<value>:响应头值

1
response.setHeader("<key>", "<value>");
  • 解决响应数据的中文乱码
1
response.setHeader("Content-Type", "text/html; charset=utf-8;");

设置响应体

写入文本内容

1
response.write("");

写入文本内容并返回响应

1
response.end("");

完成

参考文献

哔哩哔哩——黑马程序员
哔哩哔哩——前端开发专业教程