一、认识http请求
步骤
1.DNS解析域名,找到ip地址,建立TCP连接,发起http请求
2.服务器接收到http请求,进行处理,返回数据
3.客户端接收到返回的数据,处理数据(比如渲染页面)
二、nodejs处理GET请求
const http = require('http');
const server = http.createServer((req, res) => {
res.end("Hello node");
});
server.listen(5005, () => {
console.log('server running at port 5005');
});
浏览器上访问 http://localhost:5005/
那么如何看到URL的传参呢?
const http = require('http');
const querystring = require('querystring'); //导入querystring模块
const server = http.createServer((req, res) => {
const method = req.method; //请求方式
const url = req.url; //url
const path = url.split('?')[0] //路径
console.log('mothod = ', method,',url = ',url);
req.query = querystring.parse(url.split('?')[1]); //参数
console.log('query = ', req.query);
res.end(
JSON.stringify(req.query) //显示传的参数以json串的形式
);
});
server.listen(5005, () => {
console.log('server running at port 5005');
});
运行node,并在浏览器上访问 http://localhost:5005/index.js?name=zs&age=25
三、处理POST请求
const http = require('http');
const querystring = require('querystring'); //导入querystring模块
const server = http.createServer((req, res) => {
if (req.method === "POST") {
let postData = '';
//流string的方式
req.on('data', chunk => {
postData += chunk.toString();
})
req.on('end', () => {
console.log('postData = ', postData);
res.end("收到,over");
})
console.log("post data header", req.headers);
}
});
server.listen(5005, () => {
console.log('server running at port 5005');
});
使用apifox发送POST请求
这样就可以处理客户端的POST请求了。
其他
运行node可能会遇到的问题 **** 端口被占用
注意:有时运行 node index.js 是提示端口5005被占用了
执行 lsof -i:5005 查看哪些进程占用了5005端口
执行 执行 kill 67740 杀死占用的进程即可