url.parse
const url = require('url');
let str = 'http://www.baidu.com?search=xxx';
console.log( url.parse(str) );
console.log( url.parse(str).pathname );
输出 :
Url {
protocol: 'http:',
slashes: true,
auth: null,
host: 'www.baidu.com',
port: null,
hostname: 'www.baidu.com',
hash: null,
search: '?search=xxx',
query: 'search=xxx', //这里是key=value的形式
pathname: '/',
path: '/?search=xxx',
href: 'http://www.baidu.com/?search=xxx'
}
/
url.parse后面还可以传入一个布尔值,代表是否把query的key=value改成json对象。如 :
const url = require('url');
let str = 'http://www.baidu.com?search=xxx';
console.log( url.parse(str,true) );
输入 :
Url {
protocol: 'http:',
slashes: true,
auth: null,
host: 'www.baidu.com',
port: null,
hostname: 'www.baidu.com',
hash: null,
search: '?search=xxx',
query: [Object: null prototype] { search: 'xxx' }, //这里和上面不同
pathname: '/',
path: '/?search=xxx',
href: 'http://www.baidu.com/?search=xxx'
}
url.parse(str).pathname 和 req.url的区别
const url = require('url');
const http = require('http');
http.createServer((req,res)=>{
if (req.url === '/favicon.ico') { return; }
console.log('req.url = ' + req.url);
console.log('url.parse = ' + url.parse(req.url).pathname);
res.end();
}).listen(8080);
在浏览器上输入 :
http://localhost:8080/?name=tom&age=18
输出 :
req.url = /?name=tom&age=18
url.parse = /
req.url会携带上?后面的参数,而url.parse不会
path.extname
功能 : 获取文件的后缀名
例子 :
const path = require('path');
let str = 'index.html';
console.log( path.extname(str) );
输出 :
.html
qs.parse
功能 : 把字符串user=tom&password=12345解析成一个json对象
例子 :
const qs = require('querystring');
let str = 'user=tom&password=12345';
let obj = qs.parse(str);
console.log(`user=${obj.user}-------password=${obj.password}`);
输出 :
user=tom-------password=12345