先测试get请求
const http = require('http');
const querystring = require('querystring');
http.createServer((req, res) => {
const method = req.method;
const url = req.url;
const path = url.split('?')[0];
const query = querystring.parse(url.split('?')[1]);
// 返回的数据
const resData = {
method,
url,
path,
query
}
// res.setHeader('Content-type','application/json');
if(method === 'GET'){
res.writeHead(200,{
'Content-Type':'application/json; charset=utf8'
});
res.end(JSON.stringify(resData));
}
}).listen(3000, () => {
console.log('server running at port 3000...');
})
再测试post请求
if (method === 'POST') {
res.writeHead(200, {
'Content-type': 'application/json; charset=utf8'
});
let pdata = '';
req.on('data', chunk => {
pdata += chunk.toString();
});
req.on('end',()=>{
resData.postData = pdata;
// 返回结果
res.end(
JSON.stringify(resData)
)
})
}
其实也没必要在获取post data时候每次都调用chunk.toString(),因为会自动处理:
if (method === 'POST') {
res.writeHead(200, {
'Content-type': 'application/json; charset=utf8'
});
let pdata = '';
req.on('data', chunk => {
console.log(chunk);
pdata += chunk
});
req.on('end',()=>{
resData.postData = pdata;
console.log('pdata: ',pdata);
// 返回结果
res.end(
JSON.stringify(resData)
)
})
}
把POST请求发出去:
控制台打印结果: