06-HTTP模块

nobility 发布于 2021-02-12 2483 次阅读


HTTP模块

简单的HTTP服务器

const http = require("http");
const server = http.createServer(	//创建一个服务器对象,该方法接收一个监听函数
 	function (request, response) {//第一个参数是请求对象,第二个参数是响应对象
    response.writeHead(200, {"Content-Type": "text/plain'"});
    response.end("Hello World");
  }
)
server.listen(8000);	//该对象监听8000端口
console.log('Server running at http://127.0.0.1:8000/');

request(请求对象)

http.IncomingMessage类对象,继承stream.Readable

实例属性

属性名 描述
message.method 请求方法
message.httpVersion 请求http版本
message.url 请求url地址(不包括主机名和端口号)
message.headers 请求头信息

response(响应对象)

http.ServerResponse类对象

实例方法

属性名 描述
response.writeHead(statusCode[,headers]) 设置HTTP响应码和响应头(JSON格式,而不是对象形式)
response.setHeader(name,value) 设置个HTTP响应头(字符串形式)
response.getHeader(name) 获取HTTP响应头
response.removeHeader(name) 删除HTTP响应头
response.write(chunk) 设置响应体
response.end([data]) 响应结束

获取GET方法请求参数

const http = require("http");
const url = require("url");
const querystring = require("querystring");

const server = http.createServer(function(request, response){
    let urlObj = url.parse(request.url);	//解析url
    let path = urlObj.pathname;   //当前请求url路径
    if (request.method == "GET" && path == "/") {	//请求路径和方法都命中时才向下执行
        let queryObj = querystring.parse(urlObj.query);	//解析querystring
        
        console.log(JSON.stringify(queryObj));	//将queryObj对象转化为json字符串
        
        response.end("Hello World");
    } else {
        response.end("Only support GET");
    }
});

server.listen(8000);
console.log('Server running at http://127.0.0.1:8000/');

获取POST方法请求参数

const http = require("http");
const url = require("url");
const querystring = require("querystring");

const server = http.createServer(function (request, response) {
    let urlObj = url.parse(request.url);	//解析url
    let path = urlObj.pathname;   //当前请求url路径
  
    if (request.method == "POST" && path == "/") {	//请求路径和方法都命中时才向下执行
        let body = "";
        request.on("data", function (chunk) {	//继承stream.Readable类,所以可以监听data和end事件
            body += chunk;
        });
        request.on("end", function () {
            let queryObj = querystring.parse(body)  //将queryObj对象转化为json字符串
            console.log(JSON.stringify(queryObj));  //解析querystring
            response.end("Hello World");
        });
    } else {
        response.end("Only support POST");
    }
});

server.listen(8000);
console.log('Server running at http://127.0.0.1:8000/');
此作者没有提供个人介绍
最后更新于 2021-02-12