一、认识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; //urlconst 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 杀死占用的进程即可