Módulo URL
O uso do módulo URL é extremamente alto ao manusear solicitações HTTP, porque o módulo permite a análise de URLs, gerando URLs e URLs de emenda. Primeiro, vamos dar uma olhada nos componentes de um URL completo.
A cópia do código é a seguinte:
Href
--------------------------------------------------------------------------------------------------------------------------------------------------
Caminho do hospedeiro
--------------------------------------------------------------------------------------------------------------------------------------------------
http: // user: pass @ host.com: 8080/p/a/t/h? Query = string #hash
--------------------------------------------------------------------------------------------------------------------------------------------------
Protocolo Auth HostName Port Pathname Search Hash Hash
------------
consulta
Podemos usar o método .parse para converter uma sequência de URL em um objeto URL, como mostrado abaixo.
A cópia do código é a seguinte:
url.parse ('http: // user: [email protected]: 8080/p/a/t/h? Query = string#hash');
/* =>
{protocolo: 'http:',
Auth: 'Usuário: Pass',
host: 'host.com:8080',
Porto: '8080',
nome de host: 'host.com',
Hash: '#hash',
pesquisa: '? Query = string',
consulta: 'query = string',
Pathname: '/p/a/t/h',
Caminho: '/p/a/t/h? Query = string',
href: 'http: // user: [email protected]: 8080/p/a/t/h? Query = string#hash'}
*/
O método .parse não é necessariamente um URL completo. Por exemplo, na função de retorno de chamada do servidor HTTP, o request.url não contém cabeçalhos de protocolo e nomes de domínio, mas também pode ser analisado usando o método .parse.
A cópia do código é a seguinte:
http.createServer (função (solicitação, resposta) {
var tmp = request.url; // => "/foo/bar? a = b"
url.parse (tmp);
/* =>
{protocolo: nulo,
barras: nulo,
Auth: null,
Anfitrião: NULL,
Porto: nulo,
Nome do host: null,
Hash: null,
pesquisa: '? a = b',
consulta: 'a = b',
Pathname: '/foo/bar',
Caminho: '/foo/bar? a = b',
href: '/foo/bar? a = b'}
*/
}). Ouça (80);
O método .Parse também suporta o segundo e o terceiro tipo de parâmetros opcionais do tipo booleano. Quando o segundo parâmetro é igual ao verdadeiro, o campo de consulta no objeto URL retornado pelo método não é mais uma string, mas um objeto de parâmetro convertido pelo módulo Querystring. Quando o terceiro parâmetro é igual a verdadeiro, esse método pode analisar corretamente URLs sem cabeçalhos de protocolo, como //www.example.com/foo/bar.
O método do formato, por sua vez, permite a conversão de um objeto URL em uma sequência de URL, como mostrado abaixo.
A cópia do código é a seguinte:
url.format ({
Protocolo: 'http:',
Host: 'www.example.com',
Pathname: '/p/a/t/h',
Pesquisa: 'Query = String'
});
/* =>
'http://www.example.com/p/a/t/h?query=string'
*/
Além disso, o método .reSolve pode ser usado para unir URLs, como mostrado abaixo.
A cópia do código é a seguinte:
url.resolve ('http://www.example.com/foo/bar', '../baz');
/* =>
http://www.example.com/baz
*/
String de consulta
O módulo de consulta é usado para converter seqüências de parâmetros e objetos de parâmetro URL, como mostrado abaixo.
A cópia do código é a seguinte:
querystring.parse ('foo = bar e baz = qux & baz = quase corge');
/* =>
{foo: 'bar', baz: ['qux', 'quux'], corge: ''}
*/
querystring.Stringify ({foo: 'bar', baz: ['qux', 'quux'], corge: ''});
/* =>
'foo = bar e baz = qux & baz = cóx & corge ='
*/