nodejs获取参数req.query,req.params,req.param的区别

在node使用中,必然会用到参数获取的方法,下面,小编为大家介绍下常见的四种方式。

首先,为大家讲一下在原生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})。

所以,获取node中get请求参数的对象的方式如下:

var urlObj = url.parse(req.url ,true);
var query = urlObj.query;

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

edit.html?id=1,获取查询字符串
Express是一个路由和中间件Web框架;Express应用程序本质上是一系列中间件功能调用。为我们提供了强大的API,解析请求。

req.query;

注意
它不仅针对于get请求,只要是前端在链接后以查询字符串传给后台的,都可以用这种方式获取

2.获取post请求参数对象req.body

需要配置express的解析表单post数据的中间件 body-parser
body-parser是express常用的一个中间件,用来解析表单的post请求数据
body-parser用来处理不同类型的请求体、不同的编码、不同的压缩类型等

//配置
var bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())

//使用
req.body;

req.params

一般是get请求,不改变地址,在前端异步调用接口传参数用的!

//请求参数是虚拟的
.get('/api/product/remove/:id', api.removeProduct);
//前端ajax请求路径
'/api/product/remove/'+ [变量]
//后台 api.removeProduct接口获取参数
则req.params = {id: 111};

你可能感兴趣的:(node)