url.parse() 方法会解析一个 URL 字符串并返回一个 URL 对象。
第二个参数默认为false,query中为字符串。若为true,则query中为对象
var url = require("url");
var str = "http://www.itxdl.com:80/path/login/index.html?name=david";
/*
Url {
protocol: 'http:',
slashes: true,
auth: null,
host: 'www.itxdl.com:80',
port: '80',
hostname: 'www.itxdl.com',
hash: null,
search: '?name=david',
query: 'name=david',
pathname: '/path/login/index.html',
path: '/path/login/index.html?name=david',
href: 'http://www.itxdl.com:80/path/login/index.html?name=david' }
*/
// 原理就是正则的匹配
var obj = url.parse(str);
console.log(obj);
/*
Url {
protocol: 'http:',
slashes: true,
auth: null,
host: 'www.itxdl.com:80',
port: '80',
hostname: 'www.itxdl.com',
hash: null,
search: '?name=david',
query: { name: 'david' },
pathname: '/path/login/index.html',
path: '/path/login/index.html?name=david',
href: 'http://www.itxdl.com:80/path/login/index.html?name=david' }
*/
var obj = url.parse(str,true);
console.log(obj);
补充
一、URL模块
var url = require('url');
url.parse(str):将URL字符串地址解析为对象
url.format(obj):将对象格式化为URL字符串地址
二、querystring模块
var qs = require('querystring');
qs.parse(str):解析URL字符串后的参数为JS对象
qs.stringify(obj):将对象格式化为URL字符串
三、path
var path = require('path');
path.join(path1,path2,path3…):拼接path1,path2...
path.resolve(path1,path2…)拼接当前脚本的绝对路径和path1,path2
path.dirname(path):获取当前脚本的绝对路径
path.basename(path):获取当前脚本的文件名
path.extname(path):获取当前脚本的后缀名