nodejs urlモジュール詳細解
4864 ワード
nodejs urlモジュール
nodejsにおけるユーザurlフォーマットと反フォーマットモジュールのurl解析、処理などの操作に対するソリューション
1.url.parse(url String[、parseQueryString]] url Stringが文字列でない場合はType Errを投げます.
auth属性が存在しますが、エンコードできない場合はURIErrorをスローします.
例1:
例
例
nodejsにおけるユーザurlフォーマットと反フォーマットモジュールのurl解析、処理などの操作に対するソリューション
1.url.parse(url String[、parseQueryString]]
urlString
が解析するURL文字列.parseQueryString
がtrue
であれば、query
属性は常にquerystring
モジュールのparse()
方法でオブジェクトを生成する.false
であれば、戻ってきたURLオブジェクトのquery
属性は、未解析かつ復号化された文字列であることができる.デフォルトはfalse
です.slashesDenoteHost
がtrue
であれば、//
の後に次の/
の前の文字列がhost
として解析される.例えば、//foo/bar
は{host: 'foo', pathname: '/bar'}
ではなく{pathname: '//foo/bar'}
に解析される.デフォルトはfalse
です.url.parse()方法は、URL文字列を解析し、URLオブジェクトを返します.auth属性が存在しますが、エンコードできない場合はURIErrorをスローします.
例1:
var url = require("url")
var myurl="http://www.nodejs.org/some/url/?with=query¶m=that#about"
parsedUrl=url.parse(myurl)
結果{ protocol: 'http:',
slashes: true,
auth: null,
host: 'www.nodejs.org',
port: null,
hostname: 'www.nodejs.org',
hash: '#about',
search: '?with=query¶m=that',
query: 'with=query¶m=that',
pathname: '/some/url/',
path: '/some/url/?with=query¶m=that',
href: 'http://www.nodejs.org/some/url/?with=query¶m=that#about'
}
parseメソッドの2番目のパラメータがtrueである場合、結果は以下の通りです.parsedUrl=url.parse(myurl,true)
{ protocol: 'http:',
slashes: true,
auth: null,
host: 'www.nodejs.org',
port: null,
hostname: 'www.nodejs.org',
hash: '#about',
search: '?with=query¶m=that',
query: { with: 'query', param: 'that' },
pathname: '/some/url/',
path: '/some/url/?with=query¶m=that',
href: 'http://www.nodejs.org/some/url/?with=query¶m=that#about' }
2.url.format(urlObject)urlObject
〓URLオブジェクト(url.parse()
が戻ってくるような).文字列である場合は、url.parse()
を介してオブジェクトに変換される.url.format()
方法は、urlObject
からフォーマットされたURL文字列を返す.urlObject
がオブジェクトまたは文字列でない場合、url.format()
はTypeError
をスローする.例
var url=require('url');
var obj1={ protocol: 'http:',
slashes: true,
auth: null,
host: 'calc.gongjuji.net',
port: null,
hostname: 'calc.gongjuji.net',
hash: '#one#two',
search: '?name=zhangsan&age=18',
query: 'name=zhangsan&age=18',
pathname: '/byte/',
path: '/byte/?name=zhangsan&age=18',
href: 'http://calc.gongjuji.net/byte/?name=zhangsan&age=18#one#two'
};
var url1=url.format(obj1);
console.log(url1);//http://calc.gongjuji.net/byte/?name=zhangsan&age=18#one#two
// json
var obj2={ protocol: 'http:',
slashes: true,
auth: null,
host: 'calc.gongjuji.net',
port: null,
hostname: 'calc.gongjuji.net',
hash: '#one#two',
search: '?name=zhangsan&age=18',
query: { name: 'zhangsan', age: '18' }, // ,
pathname: '/byte/',
path: '/byte/?name=zhangsan&age=18',
href: 'http://calc.gongjuji.net/byte/?name=zhangsan&age=18#one#two' };
var url2=url.format(obj2);
console.log(url2); //http://calc.gongjuji.net/byte/?name=zhangsan&age=18#one#two
//
var obj3={ protocol: null,
slashes: true,
auth: null,
host: 'www.gongjuji.net',
port: null,
hostname: 'www.gongjuji.net',
hash: '#one',
search: '?name=zhangsan',
query: { name: 'zhangsan' },
pathname: '/byte/',
path: '/byte/?name=zhangsan',
href: '//www.gongjuji.net/byte/?name=zhangsan#one' };
var url3=url.format(obj3);
console.log(url3);//www.gongjuji.net/byte/?name=zhangsan#one
3.url.resolive(from、to)from
解析時に対応する基本URL.to
が解析するハイパーリンクURL.url.resolve()
方法は、一つの目標URLを一つの基礎URLに対してウェブブラウザでハイパーリンクを解析することができる.例
url.resolve('/one/two/three', 'four') // '/one/two/four'
url.resolve('http://example.com/', '/one') // 'http://example.com/one'
url.resolve('http://example.com/one', '/two') // 'http://example.com/two'
参考:https://www.jianshu.com/p/fb5278d02cc4 http://nodejs.cn/api/url.html#url_クルクルパーシ_urlstring_parsequerystring_slashesdenotehosthttps://blog.csdn.net/u011127019/article/details/52350172