官方手册: 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
包含哪些信息
- 获取
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);