Node.js es un proyecto de código abierto ampliamente utilizado para el desarrollo de aplicaciones web dinámicas. La API URLSearchParams en Node.js permite operaciones de lectura y escritura en la consulta de URL.
La clase URLSearchParams es un objeto global y se usa con uno de los cuatro constructores siguientes.
Constructores:
- new URLSearchParams(): ningún constructor de argumentos instancia un nuevo objeto URLSearchParams vacío.
- new URLSearchParams(string): acepta una string como argumento para instanciar un nuevo objeto URLSearchParams.
var
params =
new
URLSearchParams(
'user=abc&q=xyz'
);
console.log(params.get(
'user'
));
console.log(params.get(
'q'
));
Producción:
abc xyz
- new URLSearchParams(obj): acepta un objeto con una colección de pares clave-valor para instanciar un nuevo objeto URLSearchParams. El par clave-valor de obj siempre está forzado a strings. No se permiten llaves duplicadas.
const params =
new
URLSearchParams({
user:
'ana'
,
course: [
'math'
,
'chem'
,
'phys'
]
});
console.log(params.toString());
Producción:
user=ana&course=math%2Cchem%2Cphys
- new URLSearchParams (iterable): acepta un objeto iterable que tiene una colección de pares clave-valor para instanciar un nuevo objeto URLSearchParams. Iterable puede ser cualquier objeto iterable. Dado que URLSearchParams es iterable, un objeto iterable puede ser otro URLSearchParams, donde el constructor creará un clon de los URLSearchParams proporcionados. Se permiten claves duplicadas.
// Using a Map object as it is iterable
const map =
new
Map();
map.set(
'West Bengal'
,
'Kolkata'
);
map.set(
'Karnataka'
,
'Bengaluru'
);
params =
new
URLSearchParams(map);
console.log(params.toString());
Producción:
West+Bengal=Kolkata&Karnataka=Bengaluru
Accediendo a la consulta de URL:
- urlSearchParams.get(name): Devuelve el valor del primer par nombre-valor que coincide con el argumento pasado. Si no existe tal par, se devuelve nulo.
const myURL =
new
URL(
console.log(myURL.searchParams.get(
'abc'
));
Producción:
123
- urlSearchParams.getAll(name): Devuelve todo el valor del par nombre-valor que coincide con el argumento pasado. Si no existe tal par, se devuelve nulo.
const myURL =
new
URL(
console.log(myURL.searchParams.getAll(
'abc'
));
Producción:
[ '123', '526' ]
- urlSearchParams.has(name): devuelve verdadero si el argumento pasado coincide con cualquier nombre existente del par nombre-valor; de lo contrario, devuelve falso.
const myURL =
new
URL(
console.log(myURL.searchParams.has(
'abc'
));
console.log(myURL.searchParams.has(
'pqr'
));
Producción:
true false
Manipulación de la consulta de URL:
- urlSearchParams.set(nombre, valor): Establece el valor en el objeto URLSearchParams asociado con nombre al valor especificado. Si existe más de un par nombre-valor, cuyos nombres son los mismos que el argumento ‘nombre’, entonces se cambia el único valor del primer par coincidente, el resto se elimina.
const params =
new
URLSearchParams(
'abc=123&xyz=526&abc=258'
);
console.log(params.toString());
params.set(
'abc'
,
'opq'
);
console.log(params.toString());
Producción:
abc=123&xyz=526&abc=258 abc=opq&xyz=526
- urlSearchParams.append(nombre, valor): agrega un nuevo par de nombre y valor a la consulta URLSearchParams existente.
const params =
new
URLSearchParams(
'xyz=123'
);
params.append(
'foo'
,
'789'
);
params.append(
'xyz'
,
'zoo'
);
params.append(
'foo'
,
'def'
);
console.log(params.toString());
Producción:
xyz=123&foo=789&xyz=zoo&foo=def
- urlSearchParams.delete(name): elimina todos los pares de nombre-valor cuyo nombre es el mismo que el argumento ‘nombre’.
const params =
new
URLSearchParams(
'xyz=123&foo=789&xyz=zoo&foo=def'
);
console.log(params.toString());
params.
delete
(
'foo'
);
console.log(params.toString());
Producción:
xyz=123&foo=789&xyz=zoo&foo=def xyz=123&xyz=zoo
- urlSearchParams.sort(): Ordena los pares de nombre-valor existentes en el lugar por sus nombres usando un algoritmo de clasificación estable.
const params =
new
URLSearchParams(
'query=node&type=search&abc=programs'
);
params.sort();
console.log(params.toString());
Producción:
abc=programs&query=node&type=search
- urlSearchParams.toString(): Devuelve los parámetros de búsqueda de URL como una string, con caracteres codificados en porcentaje cuando sea necesario.
const params =
new
URLSearchParams(
'query=node&type=search&passwd[]=3456'
);
console.log(params.toString());
Producción:
query=node&type=search&passwd%5B%5D=3456
Iterando la consulta de URL:
- urlSearchParams.entries(): Devuelve un iterador sobre el conjunto de entradas del objeto param.
const params =
new
URLSearchParams(
'query=node&type=search&passwd=3456'
);
for
(
var
pair of params.entries()) {
console.log(pair[0]+
'-->'
+ pair[1]);
}
Producción:
query-->node type-->search passwd-->3456
- urlSearchParams.keys(): Devuelve un iterador sobre el conjunto de claves del objeto param.
const params =
new
URLSearchParams(
'query=node&type=search&passwd=3456'
);
for
(
var
key of params.keys()) {
console.log(key);
}
Producción:
query type passwd
- urlSearchParams.values(): Devuelve un iterador sobre el conjunto de valores del objeto param.
const params =
new
URLSearchParams(
'query=node&type=search&passwd=3456'
);
for
(
var
value of params.values()) {
console.log(value);
}
Producción:
node search 3456
- urlSearchParams.forEach(fn[, arg]): fn es una función invocada para cada par nombre-valor en la consulta y arg es un objeto que se usará cuando se llame a ‘fn’. Itera sobre cada par de nombre-valor en la consulta e invoca la función.
const myURL =
new
URL(
myURL.searchParams.forEach(
(value, name, searchParams) => {
console.log(name, value,
myURL.searchParams === searchParams);
});
Producción:
a b true c d true d z true
- urlSearchParams[Símbolo.iterador]():
const params=
new
URLSearchParams(
'firstname=john&lastname=beck&gender=male'
);
for
(const [name, value] of params) {
console.log(name, value);
}
Producción:
firstname john lastname beck gender male
Publicación traducida automáticamente
Artículo escrito por Shreyasi_Chakraborty y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA