node.js中获取get/post请求数据
server.js
//导入所需模块
const http = require("http");
const url = require("url");
const qs = require("querystring");
//创建server
http.createServer(function (request, response) {
//排除访问favicon.ico图标的请求
if (request.url != '/favicon.ico') {
//这里不做路由校验且不判断请求文件类型。
response.writeHead(200, {
'Cotent-Type': 'text/html;charset=utf-8'
});
//获取请求方式
let method = (request.method).toUpperCase();
//根据不同的请求方式进行不同的处理
if (method == 'GET') {
doGet(request, response);
} else if (method == 'POST') {
doPost(request, response);
} else {
//处理其他类型请求
}
}
}).listen(8080); //监听端口8080
//处理get请求方法
function doGet(request, response) {
let query = url.parse(request.url, true).query;
handle(query, response);
}
//处理post请求方法
function doPost(request, response) {
let postData = "";
//post数据一般较大,做异步处理
request.on("data", function (data) {
postData += data;
});
//监听数据读取完毕事件
request.on("end", function () {
//qs.parse可以解析url查询字符串
postData = qs.parse(postData);
handle(postData,response);
});
}
//直接把browser提交的数据返回
function handle(data, response) {
let msg = JSON.stringify(data);
response.end(msg);
}