最近又开始耍Node.js了,虽然都在处理“请求”业务上,却也巧妙的使用了好几个Node.js的模块。今天想和大家分享一下QueryString和URL模块,如何妙用,还是很有意思的。
QueryString & URL 模块文档
我想,很多人使用Node.js除了写Cli工具之外,大部分都是在从事Web开发的工作,而Web开发有很多工作,与URL息息相关。很多参数,服务端的请求,很可能要处理URL的构造,参数等,于是,你能用到的就是这两个百分之百的官方模块了。
const url = require('url'); const querystring = require('querystring');
URL模块应该来说是最简单的一个,一起就三个方法:format,parse,resolve。
const urlObject = url.parse('https://github.com/icepy?d=1234/#id1234')
顾名思义parse可以将一个URL转换成一个Object,包含URL的大量信息。
既然能解析,那么通过这个对象,也能使用format来还原成string类型的URL地址。这个方法,对于我们要操纵URL时,提供了很便捷的方式,简简单单就能得到URL所包含的信息。而resolve方法主要来处理URL的路径,不过一般我们可以使用字符串拼接的方式直接处理URL了,但是,如果有一些其他情况,可能resolve会更适用一些。
url.resolve('/1234','/2')
大家猜一猜,最终会返回一个什么path?
QueryString查询字符串,主要是根据URL的传统定义“&”,“=”来序列化成JSON对象,提供的方法也不多,四个而已:escape,parse,stringify,unescape。
> querystring.parse(url.parse(u).search) { '?__biz': 'MjM5MTA1MjAxMQ==', mid: '503742076', idx: '2', sn: 'c6c73752ed7129f40b22d3ffad8a1c0c', scene: '19' }
最后给大家上一个关系图:
url.parse(string).query | url.parse(string).pathname | | | | | https://github.com/icepy?work=dingtalk&say=hello_dingtalk --- ----- | | | | querystring(string)['work'] | | querystring(string)['say']
更多精彩内容可关注我的个人微信公众号:搜索fed-talk或者扫描下列二维码,也欢迎您将它分享给自己的朋友。