Node.js中url
模块用于处理与解析 URL,官方链接
以下是url的url.parse()
>node
> url
{ Url: [Function: Url],
parse: [Function: urlParse],
resolve: [Function: urlResolve],
resolveObject: [Function: urlResolveObject],
format: [Function: urlFormat],
URL: [Function: URL],
URLSearchParams: [Function: URLSearchParams],
domainToASCII: [Function: domainToASCII],
domainToUnicode: [Function: domainToUnicode],
pathToFileURL: [Function: pathToFileURL],
fileURLToPath: [Function: fileURLToPath] }
>url.parse('http://127.0.0.1:3000/postMeth?username=tom&content=abc')
Url {
protocol: 'http:', //获取及设置 URL 的协议部分
slashes: true,
auth: null,
host: '127.0.0.1:3000', //获取及设置 URL 的主机部分。
port: '3000', //获取及设置 URL 的端口部分
hostname: '127.0.0.1', //获取及设置 URL 的主机名部分。 url.host 和 url.hostname 之间的区别是 url.hostname 不包含端口
hash: null, //获取及设置 URL 的片段部分
search: '?username=tom&content=abc', //得到?及之后的参数
query: 'username=tom&content=abc', //得到参数不包含?
pathname: '/postMeth', //得到当前的路径但是不包含?及之后的参数
path: '/postMeth?username=tom&content=abc',
href: 'http://127.0.0.1:3000/postMeth?username=tom&content=abc' }//获取及设置序列化的 URL
> url.parse('http://127.0.0.1:3000/postMeth?username=tom&content=abc').query
'username=tom&content=abc'
//parse的第二个参数为true时获取到的参数会被转为对象
> url.parse('http://127.0.0.1:3000/postMeth?username=tom&content=abc',true).query
[Object: null prototype] { username: 'tom', content: 'abc' }
在node js中同样存可以通过require来得到url对象
var URL=require('url');
var url=request.url;
var pathname=URL.parse(url).pathname;//得到url中不带?之后的一个路径
obj=URL.parse(url,true).query; // URL.parse(url,true)得到url的参数,true得到的参数为对象