módulo URL
El uso del módulo de URL es extremadamente alto cuando se maneja las solicitudes HTTP porque el módulo permite analizar URL, generar URL y URL de empalme. Primero, echemos un vistazo a los componentes de una URL completa.
La copia del código es la siguiente:
href
----------------------------------------------------------------------------------------------------------------------------
ruta del huésped
----------------------------------------------------------------------------------------------------------------------------
http: // user: pase @ host.com: 8080/p/a/t/h? query = string #hash
----------------------------------------------------------------------------------------------------------------------------
Protocol Auth HostName Port PathName Search Hash
------------
consulta
Podemos usar el método .Parse para convertir una cadena de URL en un objeto URL, como se muestra a continuación.
La copia del código es la siguiente:
url.parse ('http: // user: [email protected]: 8080/p/a/t/h? query = string#hash');
/* =>
{Protocolo: 'http:',
Auth: 'User: pase',
Host: 'Host.com:8080',
Puerto: '8080',
HostName: 'host.com',
Hash: '#hash',
Buscar: '? Query = String',
consulta: 'Query = String',
RathName: '/P/A/T/H',
ruta: '/p/a/t/h? query = string',
href: 'http: // user: [email protected]: 8080/p/a/t/h? query = string#hash'}
*/
El método .Parse no es necesariamente una URL completa. Por ejemplo, en la función de devolución de llamada del servidor HTTP, request.url no contiene encabezados de protocolo y nombres de dominio, pero también se puede analizar utilizando el método .Parse.
La copia del código es la siguiente:
http.createServer (función (solicitud, respuesta) {
var tmp = request.url; // => "/foo/bar? a = b"
URL.PARSE (TMP);
/* =>
{Protocolo: NULL,
Clashes: NULL,
Auth: Null,
Anfitrión: NULL,
Puerto: NULL,
nombre de host: nulo,
hash: nulo,
Buscar: '? A = B',
consulta: 'a = b',
RathName: '/foo/bar',
ruta: '/foo/bar? a = b',
href: '/foo/bar? a = b'}
*/
}). Escuchar (80);
El método .Parse también admite el segundo y tercer tipo de parámetros opcionales de tipo booleano. Cuando el segundo parámetro es igual a verdadero, el campo de consulta en el objeto URL devuelto por el método ya no es una cadena, sino un objeto de parámetro convertido por el módulo de consulta. Cuando el tercer parámetro es igual a verdadero, este método puede analizar correctamente las URL sin encabezados de protocolo, como //www.example.com/foo/bar.
El método de formato, a su vez, permite convertir un objeto URL en una cadena de URL, como se muestra a continuación.
La copia del código es la siguiente:
url.format ({
Protocolo: 'http:',
Host: 'www.example.com',
RathName: '/P/A/T/H',
Buscar: 'Query = String'
});
/* =>
'http://www.example.com/p/a/t/h?query=string'
*/
Además, el método .resolve se puede usar para empalmar las URL, como se muestra a continuación.
La copia del código es la siguiente:
url.resolve ('http://www.example.com/foo/bar', '../baz');
/* =>
http://www.example.com/baz
*/
Cadena de consulta
El módulo de consulta se usa para convertir cadenas de parámetros de URL y objetos de parámetros, como se muestra a continuación.
La copia del código es la siguiente:
QueryString.Parse ('foo = bar & baz = qux & baz = quux & corge');
/* =>
{foo: 'bar', baz: ['qux', 'quux'], Corge: ''}
*/
QueryString.Stringify ({foo: 'bar', baz: ['qux', 'quux'], Corge: ''});
/* =>
'foo = bar & baz = qux & baz = quux & corge ='
*/