URL.format (urlObject) es la API incorporada proporcionada por la clase URL, que toma un objeto o string y devuelve una string formateada derivada de ese objeto o string.
Sintaxis:
const url.format(urlObject)
Si el urlObject no es un objeto o una string, generará un TypeError .
Valor devuelto: Devuelve una string derivada de urlObject.
El urlObject puede tener los siguientes campos o claves:
- protocolo
- barras
- autenticación
- nombre de host
- anfitrión
- Puerto
- nombre de ruta
- búsqueda
- consulta
- picadillo
El proceso de formateo es el siguiente:
- 1. Inicialmente, se crea una string vacía (» diga resultado ) y luego se buscan los siguientes parámetros en orden.
2. urlObject.protocolo: string
- Si urlObject.protocol es una string, se agrega al resultado; de lo contrario, si no está indefinido y no es una string, se genera un error.
- Si urlObject.protocol no termina con dos puntos ASCII ( : ), entonces, el literal ‘:’ se agrega al resultado.
- 3. urlObject.slashes: booleano
- Si alguna de las siguientes propiedades es verdadera, se añaden los literales ‘//’ al resultado:
- urlObject.slashaes es verdadero.
- urlObject.protocol es http, https, ftp, gopher o file , entonces las barras diagonales serán automáticamente verdaderas incluso si las barras diagonales son falsas.
- 4. urlObject.auth: string
- Si urlObject.auth no está indefinido y urlObject.host o urlObject.hostname tampoco está indefinido, auth se agrega al resultado con el literal ‘@’ independientemente de si el literal ‘@’ está presente o no al final.
- 5. urlObjeto.host: string
- Si urlObject.host es una string, se agrega al resultado; de lo contrario, si no está indefinido y no es una string, se genera un error.
- Si no está definido, se considera urlObject.hostname.
- 6. urlObject.hostname: string
- Si urlObject.hostname es una string, se agrega al resultado; de lo contrario, si no está indefinido y no es una string, se genera un error.
- Si se definen tanto el host como el nombre del host, se considerará el host.
- 7. urlObject.port: (número | string)
- Si se considera el nombre de host y se define urlObject.port , se agregará el literal ‘:’ al resultado junto con urlObject.port.
- 8. urlObject.pathname: string
- Si urlObject.pathname es una string pero no una string vacía y no comienza con el literal ‘/’, entonces se agrega el literal ‘/’ al resultado.
- urlObject.pathname se agrega al resultado.
- De lo contrario, UrlObject.pathname no es una string, entonces se genera un error.
- 9. urlObject.search: string
- Si urlObject.search es una string pero no una string vacía y no comienza con el literal ‘?’ , entonces literal ‘?’ se adjunta al resultado.
- urlObject.search se adjunta al resultado.
- Si urlObject.search no es una string, se genera un error.
- 10. urlObjeto.consulta: Objeto
- Si urlObject.query es un objeto, entonces el literal ‘?’ se agrega al resultado junto con el resultado de llamar al método stringify () del módulo querystring pasando el valor de urlObject.query .
- Si se definen tanto urlObject.search como urlObject.query , solo se considerará urlObject.search .
- 11. urlObjeto.hash: string
- Si urlObject.hash es una string pero no una string vacía y no comienza con el literal ‘#’ , entonces se agrega el literal ‘#’ al resultado .
- urlObject.hash se agrega al resultado.
- De lo contrario, urlObject.hash no es una string y no está indefinido, entonces se genera un error .
- 12. Finalmente, se devuelve el resultado .
Ejemplo 1
/* node program to demonstrate the URL.format API. */ //importing the module 'url' const url = require('url'); //creating and initializing urlObject var urlObject={ protocol: 'https', hostname: 'example.com', port: 1800, pathname: 'sample/path', query: { page: 1, format: 'json' }, hash: 'first' } //getting the derived URL from urlObject using the url.format function var sampleUrl=url.format(urlObject); //Display the returned value console.log(sampleUrl.toString());
Output: https://example.com:1800/sample/path?page=1&format=json#first
Ejemplo 2
/* node program to demonstrate the URL.format API. */ //importing the module 'url' const url = require('url'); //creating and initializing urlObject var urlObject={ protocol: 'prct', slashes: false, host: 'example.com', auth: 'abc', pathname: '/sample/path', search: 'something', hash: 'first' } //getting the derived URL from urlObject using the url.format function var sampleUrl=url.format(urlObject); //Display the returned value console.log(sampleUrl.toString());
Output: prct:abc@example.com/sample/path?something#first
NOTA: El programa anterior se compilará y ejecutará mediante el comando node fileName.js .
Referencia:
https://nodejs.org/api/url.html#url_url_format_urlobject
Publicación traducida automáticamente
Artículo escrito por Vinod Tahelyani y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA