Node Http模块和url模块

官方手册: http://nodejs.cn/api/

http 模块

  • http 模块主要是用于创建一个能够处理和响应 http 响应的服务
// 1. 引入http模块
const http = require("http");

// 2. 创建http服务 并监听端口, 这里的端口可以修改
http.createServer((request, response) => {
    response.end('hello node');
}).listen(3000);

此时,用浏览器访问 127.0.0.1:3000 或者 localhost:3000 就可以看到 hello node, 服务开启成功了

request 和 response

  • request 请求对象
  • response 响应对象

获取请求信息

  • require.url 获取请求路径
  • request.httpVersion 获取协议的版本
  • request.method 获取请求的方式(get post)
  • request.headers 获取请求头
const http = require("http");
http.createServer((request, response) => {
    // 1. 获取请求的路径(就是域名后的.)
    url     = request.url;
    
    // 2. 获取 http 协议的版本
    version = request.httpVersion;

    // 3. 获取请求方式
    method  = request.method;

    // 4. 获取请求头信息(object)
    headers = request.headers;
    response.end('over');
}).listen(3000);

设置响应信息

  • response.setHeader() 设置响应头
  • response.write() 设置响应信息
  • response.end() 响应结束
const http = require("http");
http.createServer((request, response) => {
    // 1. 设置响应头
    response.setHeader("content-type", "text/html; charset=utf8");
    // 2. 设置响应信息
    response.write("这是响应体信息...");
    // 3. 结束响应
    response.end('<h1>响应结束</h1>');
}).listen(3000);

url 模块的使用

  • 首先来看一个完整的 url 包含哪些信息
    7942449-b2e1cac5b75b3dd9.png
    完整的url包含的信息
  • 获取 url 相关信息
const http = require("http");
const url  = require("url");

http.createServer((request, response) => {
    // let myUrl = url.parse(request.url);      // 把reques.url转换为一个URL对象

    let myUrl = url.parse(request.url, true); 
    // 把reques.url转换为一个URL对象,并且将query,search等属性转换为对象
    console.log("url对象:", myUrl);
    console.log("hash:"+myUrl.hash);         // 获取myUrl 的hash部分(在vue和react中有的是用hash)  #test
    console.log("host:"+myUrl.host);         // 获取myUrl中包括端口的域名部分 http://www.test.com:80
    console.log("hostname:"+myUrl.hostname); // 获取myUrl中的域名部分  http://www.test.com
    console.log("path:"+myUrl.path);         // 获取路径部分 /a/b?id=10
    console.log("port:"+myUrl.port);         // 获取myUrl端口 80 8080
    console.log("search:"+myUrl.search);     // 获取请求的参数 ?id=10
    response.end('Responses');
}).listen(3000);
原文地址:https://www.cnblogs.com/liaohui5/p/10581628.html