url模块
- 首先,定义一个
url_demo.js
文件
const url = require('url');
let obj = url.parse('[http://localhost:8080/pinglun?name=jason&message=hello+world](http://localhost:8080/pinglun?name=jason&message=hello+world)
');
console.log(obj);
- 然后,命令行运行
url_demo.js
文件
PS E:\good good study\NodeJs> node .\url_demo.js
Url {
protocol: 'http:', //协议类型
slashes: true, //协议类型后面跟的两个斜杠
auth: null, //URL 的用户名与密码部分
host: 'localhost:8080', //URL 的完整的小写的主机部分,包括 port(如果有)
port: '8080', // 端口号
hostname: 'localhost', //主机名
hash: null, // #
search: '?name=jason&message=hello+world', //包含开头 ASCII 问号(?)的查询字符串
query: 'name=jason&message=hello+world', //不含开头 ASCII 问号(?)的查询字符串
pathname: '/pinglun', //路径名称,包含 URL 的整个路径部分
path: '/pinglun?name=jason&message=hello+world', //pathname 与 search 组成部分的串接。
href:
'http://localhost:8080/pinglun?name=jason&message=hello+world'
//解析后的完整的 URL 字符串, protocol 和 host 都会被转换为小写的。
}
url.parse()
url.parse()
- 作用: 解析url字符串并返回url对象。
- 语法:
url.parse('url字符串','parseQueryString')
其中第一个参数是整个的url字符串,第二个参数是查询字符串,它有两个值,true和false
,如果为true
则url
对象的query
属性就解析成对象,如果为false
则query
属性不解析,默认为false
。
例: 在上面加上true
- 改写的
url_demo.js
文件
const url = require('url');
let obj = url.parse('http://localhost:8080/pinglun?name=jason&message=hello+world', true);
console.log(obj);
- 在命令行运行该文件
PS E:\good good study\NodeJs> node .\url_demo.js
Url {
protocol: 'http:',
slashes: true,
auth: null,
host: 'localhost:8080',
port: '8080',
hostname: 'localhost',
hash: null,
search: '?name=jason&message=hello+world',
query:
[Object: null prototype] { name: 'jason', message: 'hello world' },
pathname: '/pinglun',
path: '/pinglun?name=jason&message=hello+world',
href:
'http://localhost:8080/pinglun?name=jason&message=hello+world' }
- 总结:
url
模块的parse
方法中,query
属性以及pathname
属性用的比较的多,query
属性是表单提交的数据,pathname
可以作为客户端的请求路径,这就厉害了。