前提給大家聲明一下,我操作的環境是Mac終端下操作的.(前提是你先要下載好node.js)
說道URL 恐怕都不陌生,但是要說URL,就 必須先說下URI
URI是統一資源標識符,是一個用於標識某一互聯網資源名稱的字符串。由是三個組成部分:訪問資源的命名機制、存放資源的主機名、資源自身的名稱,由路徑表示。
URL是統一資源定位,是對可以從互聯網上得到的資源的位置和訪問方法的一種簡潔的表示,是互聯網上標准資源的地址。互聯網上的每個文件都有一個唯一的URL,它包含的信息指出文件的位置以及瀏覽器應該怎么處理它。
說完URL和URI的區別,我說說我們今天所要將的,如何在終端里,用node.js解析URL.
在官網上看他有3個可以調用的參數
1.url.parse(urlStr,[parseQueryStaing],[slashesDencteHost]) // 解析url 把他解析成一個對象
2.url.format(urlObj) // 把url格式化成一個字符串
3.url.resolve(form,to) // 也是 解析的 兩個參數
首先,打開終端 輸入node 然后輸入url 在終端顯示就是下面這樣的
liuhaosheng:~ xalo$ node > url { parse: [Function: urlParse], resolve: [Function: urlResolve], resolveObject: [Function: urlResolveObject], format: [Function: urlFormat], Url: [Function: Url] } >
下來先介紹 在終端輸入 url.parse() 彈出來下面內容
// url.parse()把url解析成對象
> url.parse('http://www.imooc.com/course/list?c=fe') // 這里面的網址是隨便找的 Url { protocol: 'http:', // 底層使用的協議 slashes: true, // 是否有協議的雙斜線 auth: null, host: 'www.imooc.com', // http 是服務器的ip地址或者是域名 port: null, // 端口 默認80 hostname: 'www.imooc.com', // 主機名 hash: null, // 哈希值 對應的是頁面上的瞄點 search: '?c=fe', // 查詢字符串參數 query: 'c=fe', // 發送給http的數據 等號分割的鍵值稱為參數串 字符串 pathname: '/course/list', // 訪問資源的路徑名 path: '/course/list?c=fe', // 路徑 href: 'http://www.imooc.com/course/list?c=fe' } // 沒被解析的完整的超級鏈接 >
url.parse()帶有兩個參數
> url.parse('http://www.imooc.com/course/list?c=fe',true) //第一個參數地址 第二個參數指定說 解析query模塊是用什么方法是用queryStr方法(true) Url { // 還是 自帶的url方法 (false) protocol: 'http:', slashes: true, auth: null, host: 'www.imooc.com', port: null, hostname: 'www.imooc.com', hash: null, search: '?c=fe', query: { c: 'fe' }, // 變成對象 pathname: '/course/list', path: '/course/list?c=fe', href: 'http://www.imooc.com/course/list?c=fe' } >
url.parse()三個參數
> url.parse('//imooc.com/course/list') // 就是針對不知道請求的地址是什么協議的 Url { protocol: null, slashes: null, auth: null, host: null, port: null, hostname: null, hash: null, search: null, query: null, pathname: '//imooc.com/course/list', path: '//imooc.com/course/list', href: '//imooc.com/course/list' }
//////////下面是有三個參數的 > url.parse('//imooc.com/course/list',true,true) Url { protocol: null, slashes: true, auth: null, host: 'imooc.com', port: null, hostname: 'imooc.com', hash: null, search: '', query: {}, pathname: '/course/list', path: '/course/list', href: '//imooc.com/course/list' } >
把剛才通過parse解析 得到的對象放在format里面,看能不能生成標准的url地址
> url.format({ //里面傳入一個剛才通過parse解析得到的對象 ... protocol: 'http:', ... slashes: true, ... auth: null, ... host: 'www.imooc.com', ... port: null, ... hostname: 'www.imooc.com', ... hash: null, ... search: '?c=fe', ... query: 'c=fe', ... pathname: '/course/list', ... path: '/course/list?c=fe', ... href: 'http://www.imooc.com/course/list?c=fe' }) 'http://www.imooc.com/course/list?c=fe' //生成一個完整並且合法的url地址 >
在終端中輸入 url.resolve
> url.resolve('http://www.imooc.com','/course/list?c=fe') //第一個參數是域名,第二個參數是 path 路徑
'http://www.imooc.com/course/list?c=fe' // 然后回車就生成一個合法的域名
>
這就是node.js中的url解析,希望可以幫助到大家.