1.get
我是用的url进行解析
- req.method可以获取请求方式
- req.url 获取请求地址
- req.headers获取请求报文信息
例如 url为 localhost:/index?name=zs&age=4
let { query, pathname } = url.parse(req.url, true);
console.log(pathname); ///index
console.log(query.name);//zs
console.log(query.age);//4
完整代码如下
// 用于创建网站服务器的模块
const http = require("http");
// 用于处理url地址
const url = require("url");
// app对象就是网站服务器对象
const app = http.createServer();
// 当客户端有请求来的时候
app.on("request", (req, res) => {
// 获取请求方式 有get 和post 在搜索栏时get
// req.method
// console.log(req.method);
// 获取请求地址
// req.url
// console.log(req.url);
// 获取请求报文信息
// req.headers
// console.log(req.headers['accept']);
//'content-type': 'text/html;charset=utf8' 后面的意思是用html解析方式解析
res.writeHead(200, {
"content-type": "text/html;charset=utf8",
});
console.log(req.url);
// 1) 要解析的url地址
// 2) 将查询参数解析成对象形式
let { query, pathname } = url.parse(req.url, true);
console.log(pathname);
console.log(query.name);
console.log(query.age);
if (pathname == "/index" || pathname == "/") {
res.end("<h2>欢迎来到首页</h2>");
} else if (pathname == "/list") {
res.end("<h2>welcome to listpage</h2>");
} else {
res.end("<h2>not found</h2>");
}
if (req.method == "POST") {
res.end("post");
} else if (req.method == "GET") {
res.end("get");
}
// res.end('<h2>hello user</h2>');
});
// 监听端口
app.listen(3000);
console.log("网站服务器启动成功");
2,post
首先在html文件中的表单中选择你提交的方式和地址
<!--
method: 指定当前表单提交的方式
action: 指定当前表单提交的地址
-->
<form method="post" action="http://localhost:3000">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" />
</form>
post请求是连续短暂的 所以需要监听传输完毕事件
// 监听参数传输完毕事件
req.on("end", () => {
console.log(querystring.parse(postData));
});
完整代码如下
//用于创建网站服务器的模块
const http = require("http");
// app对象就是网站服务器对象
const app = http.createServer();
// 添加'querystring 用来处理字符串
const querystring = require("querystring");
//添加事件 post的一些信息在报文里
//因为post要用到两个函数一个是data传输 一个是end 传输结束
app.on("request", (req, res) => {
let postData = "";
// 监听参数传输事件 以为传输是多次的
req.on("data", (chunk) => (postData += chunk));
// 监听参数传输完毕事件
req.on("end", () => {
console.log(querystring.parse(postData));
});
res.end("hi");
});
// 监听端口
app.listen(3000);
console.log("网站服务器启动成功");