专栏名称: 程序员大咖
程序员大咖,努力成就期待着的自己。分享程序员技术文章、程序员工具资源、程序员精选课程、程序员视频教程、程序员热点资讯、程序员学习资料等。
目录
相关文章推荐
知产库  ·  娃哈哈集团转让“娃哈哈”商标 ·  17 小时前  
国家知识产权局  ·  关于核准怀仁恒源瓷业有限公司等363家企业使 ... ·  昨天  
锦缎  ·  这个小众赛道,炸出三款大药 ·  2 天前  
锦缎  ·  AI科学家出任阿里高管所传递的讯号 ·  2 天前  
禽报网  ·  冻品•2-9\\局部单品继续跌100-300 ... ·  3 天前  
51好读  ›  专栏  ›  程序员大咖

前端传参如果参数过多你还会拼接在URL上嘛?

程序员大咖  · 公众号  ·  · 2024-11-18 10:24

正文

前言

qs 是npm仓库所管理的包,可以通过npm install qs安装,因此我们可以直接通过require('qs')引用得到,qs.stringify()作用是将对象或者数组序列化成URL的格式。那么这句话是什么意思呢?

我们先来看一下官方的用法

Usage


var qs = require('qs');
var assert = require('assert');

var obj = qs.parse('a=c');
assert.deepEqual(obj, { a: 'c' });

var str = qs.stringify(obj);
assert.equal(str, 'a=c');

非常简单,直接引入然后通过 qs.stringify() , qs.parse() 就可以了。

下面我们举两个例子:

  • 对象序列化

let obj = {
methods: 'query_num'
id: 1,
name: 'Lisa'
}
qs.stringify(obj)
//   methods=query_stu&id=1&name=chenchen    这就是我们的传到服务器的url
  • 数组序列化

let arr = [1,3]
qs.stringify({a:arr})
// 'arr[0]=1&arr[1]=3'

这种格式可以进行转为序列化,但是url中会带有数组的下标a[0]、a[1],这并不是我们一般的处理办法。常用方法如下:


// 常用并推荐使用
let arr = [1,3]
qs.stringify({a:arr},{indices:false});
// 'arr=1&arr=3' 这个格式,是比较常用的格式

其中:indices:false,去除默认处理的方式。如果不写这个的话,则默认是第一种处理的方式(带下标)。

qs.parse()则就是反过来的,将我们通过qs.stringify()序列化的对象或者数组转回去。


let url = 'id=1&name=chenchen'
qs.parse(url)
// {id:1,name:chenchen}  






请到「今天看啥」查看全文