nodejs学习笔记(3)-内置模块(2)-url模块,querystring模块和event模块
url
模块
url
模块是nodejs
里面的一个简单的模块,可以把url
网址解析为一个对象该模块提供三个方法:
url.parse(urlString,boolean,boolean)
url.format(urlObj)
url.resolve(from,to)
1.url.parse(urlString,boolean,boolean)
parse
这个方法可以将一个url
的字符串解析并返回一个url
的对象- 参数:
urlString
指传入一个url
地址的字符串 - 第二个参数(可省)传入一个布尔值,默认为
false
,为true
时,返回的url
对象中,query
的属性为一个对象。这样就方便我们读取前端传过来的query
参数 - 第三个参数(可省)传入一个布尔值, 默认为
false
,//foo/bar
形式的字符串将被解释成{ pathname: ‘//foo/bar’ }
;如果设置成true
,//foo/bar
形式的字符串将被解释成{ host: ‘foo’, pathname: ‘/bar’ }
代码展示:
// 引入url模块 |
结果展示:
当后面不跟
true
时当后面跟上
true
时
2. url.format(urlObj)
format
这个方法是将传入的url
对象编程一个url
字符串并返回参数:
urlObj
指一个url
对象
代码展示:
// nodeJS内置模块 : url模块 |
结果展示:
3. url.resolve(from,to)
resolve
这个方法返回一个格式为”from/to
“的字符串,对传入的两个参数用”/“符号进行拼接,并返回
代码展示:
// nodeJS内置模块 : url模块 |
结果展示:
querystring
模块
作用:对
http
请求所带的数据进行解析,可以把querystring
参数解析为一个对象该模块提供4个常用方法:
querystring.parse(str,separator,eq,options)
querystring.stringify(obj,separator,eq,options)
querystring.escape(str)
querystring.unescape(str)
1. querystring.parse()
parse
这个方法是将一个字符串反序列化为一个对象。参数:
str
: 指需要反序列化的字符串;separator
(可省)指用于分割str
这个字符串的字符或字符串,默认值为”&
“;eq
(可省)指用于划分键和值的字符或字符串,默认值为”=
“;options
(可省)该参数是一个对象,里面可设置maxKeys
和decodeURIComponent
这两个属性:
代码展示:
// nodeJS内置模块 : querystring模块 |
- 这个方法相当于
url
模块的第二个参数设置为true
,然后取query
属性值
2. querystring.stringify()
stringify
这个方法是将一个对象序列化成一个字符串,与querystring.parse
相对。- 参数:
obj
: 指需要序列化的对象separator
(可省): 用于连接键值对的字符或字符串,默认值为”&
“;eq
(可省): 用于连接键和值的字符或字符串,默认值为”=
“;options
(可省): 传入一个对象,该对象可设:encodeURIComponent
这个属性:值的类型为function
,可以将一个不安全的url
字符串转换成百分比的形式,默认值为querystring.esca
代码展示:
// nodeJS内置模块 : querystring模块 |
3. querystring.escape(str)
escape
可使传入的字符串进行编码
代码展示:
// nodeJS内置模块 : querystring模块 |
4. querystring.unescape(str)
unescape
方法可将含有%
的字符串进行解码
代码展示:
// nodeJS内置模块 : querystring模块 |
结果展示:(4种方法)
event
模块
Events
模块是Node最重要的模块,它提供了一个属性EventEmitter
,EventEmitter
的核心是事件发射与事件监听器。Events
模块是Node对 发布订阅模式(publish/subscribe
)的实现。一个对象通过这个模块,向另一个对象传递消息。- 该模块通过
EventEmitter
属性,提供了一个构造函数。该构造函数的实例具有on
方法,可以用来监听指定事件,并触发回调函数。 - 任意对象都可以发布指定事件,被
EventEmitter
实例的on方法监听到。
发布订阅模式
- 订阅方法:
on
方法用来订阅事件,订阅是将方法对应成一种一对多的关系。 - 发布方法:
emit
用来执行订阅的事件。 - 取消订阅:
off
方法可以移除对应的事件监听。 - 订阅一次:
once
绑定事件当执行后自动删除订阅的事件。
简单的代码实现:
event.js
// 内置模块: events模块 |
结果展示:
小案例实现:(结合get
请求)
使用get
向猫眼电影请求数据,以node
为中间转换站解决跨域问题
- 服务端(
get.js
)
// 内置模块: http模块 - get模块 |
- 前端页面(
get.html
)
|
结果展示:
服务端成功输出获取到的数据
前端网页数据也获取成功
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0许可协议。转载请注明来自 肥林の仓库