原生node中怎么获取get/post请求参数
1. 处理get请求参数
node有自己的核心模块,在这里就用到了url模块。
url.parse(); 方法可以将一个完整的URL地址,分为很多部分,常用的有:host、port、pathname、path、query。
第一个参数是地址,
第二个参数默认是false,设置为ture后,其query属性就会从查询字符串格式(“a=1&b=2”)转换为了对象格式({a: 1,b: 2})。
var urlObj = url.parse(req.url ,true);
var query = urlObj.query;
console.log(urlObj);
console.log(query);
//结果
Url {
protocol: null,
slashes: null,
auth: null,
host: null,
port: null,
hostname: null,
hash: null,
search: '?a=9&c=5',
query: [Object: null prototype] { a: '9', c: '5' },
pathname: '/index.html',
path: '/index.html?a=9&c=5',
href: '/index.html?a=9&c=5'
}
[Object: null prototype] { a: '9', c: '5' }
2. 处理post请求参数
获得post参数对象,需要用到第三方包querystring
//1.创建空字符叠加数据片段
var data = '';
//2.注册data事件接收数据(每当收到一段表单提交的数据,该方法会执行一次)
req.on('data', function (chunk) {
// chunk 默认是一个二进制数据,和 data 拼接会自动 toString
data += chunk;
});
// 3.当接收表单提交的数据完毕之后,就可以进一步处理了
//注册end事件,所有数据接收完成会执行一次该方法
//使用querystring对url进行反序列化(解析url将&和=拆分成键值对),得到一个对象
req.on('end', function () {
console.log(data);
var dataObject = querystring.parse(data);
console.log(dataObject);
});
express获取参数
1.获取请求参数对象req.query
req.query;
注意: 它不仅针对于get请求,只要是前端在链接后以查询字符串传给后台的,都可以用这种方式获取
2.获取post请求参数对象req.body
body-parser是express常用的一个中间件,用来解析表单的post请求数据
body-parser用来处理不同类型的请求体、不同的编码、不同的压缩类型等
//配置
var bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
//使用
req.body;