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许可协议。转载请注明来自 肥林の仓库




