原生nodejs解析get和post参数方法
通过get和post方式获取提交的表单数据
1,通过get方法,解析参数:
通过get方法请求解析参数,通过nodejs原生内置模块url的url.parse()方法,将get请求的url传入,url.parse()方法会自动解析URL路径;
//导入http模块 const http = require('http') //导入url模块,获取get请求参数 const url = require('url') //创建服务器 const server = http.createServer() //开启服务器 server.on('request', (req, res) => { //通过url.parse()方法,将get请求的URL传入 var params = url.parse(req.url,true).query;//加上true参数表示返回json数据格式,否则默认为字符串, console.log(params); }) server.listen(8080, () => { console.log('http://127.0.01:8080/user'); })
url.parse()可以将一个完整的URL地址以JSON对象 返回,里面都是get请求方式的相关信息,代码如下:
var url=require('url'); var path="http://localhost:8888/index?name=bob&password=123456"; var query=url.parse(path); console.log(query);
对比得知,url.parse(path,true);
加了true 后 ,JSON对象的 query中的query 由原来的字符串变成了对象,这在Node的官方文档也有说:
2,通过POST方法,解析参数:
//导入http模块 var http = require('http'); //导入querystring内置模块,解析post请求参数 var querystring = require('querystring'); http.createServer(function(req, res){ // 定义了一个post变量,用于暂存请求体的信息 var post = ''; // 通过req的data事件监听函数,每当接受到请求体的数据,就累加到post变量中 req.on('data', function(chunk){ post += chunk; }); // 在end事件触发后,通过querystring.parse将post解析为真正的POST请求格式,然后向客户端返回。 req.on('end', function(){ post = querystring.parse(post); res.end(util.inspect(post)); }); }).listen(3000);
时间如白驹过隙,忽然而已,且行且珍惜......