top of page
Buscar

¿Vale la pena hacer un script o lo hago a mano? - Parsear un string ID de mongo express

  • Foto del escritor: Patricia Vazquez
    Patricia Vazquez
  • 21 feb 2021
  • 2 Min. de lectura

Si trabajáis con mongo, y utilizáis el cliente de mongo-express os habréis dado cuenta de que si utilizáis UUID, no los parsea correctamente. Más de una vez me he visto en la tesitura de ponerme a hacerlo a mano.


Voy al cliente y me dan esto:

Y por no perder el tiempo a veces, porque estoy muy enfrascada en mi tarea, me he puesto a parsearlo a mano ( Lo sé! Fatal!).


Pues hoy, ya estaba un poco harta de darme cuenta que cada dos por tres estoy haciendo esto. Y digamos, que he decidido explicaros como abordar/justificar/resolver estos problemas.


Vayamos por partes y analicemos como lo propongo yo:


1 Identificamos el problema: Patricia no quiere perder 2 minutos de su vida cada vez que se enfrente a esto, al no ser algo excepcional, ha calculado que pierde 2 minutos por semana. Al mes ya serían 10 minutos. Al año 120 aproximadamente. Por tanto, esta justificado invertir al menos 10 - 15 minutos de tiempo en esta solución.


2 Alguien ha resuelto este problema antes? : Patricia no quiere ponerse a inventar la rueda si alguien ya la ha inventado. Busca en google ( en inglés ofc ) durante 1-2 minutos, como lo solucionan otras personas. Balancea el tiempo que le cuesta implementar esas soluciones frente a un posible script muy sencillo. 5-10 minutos aproximadamente entender la solución de esa persona y probarlo, frente a 5 minutos que le costaría hacer el script.


3 Implementar la solución! : Patricia se pone manos a la obra.



Cómo es algo extremadamente sencillo, he decidido compartir el proceso.

Esto es lo que tenemos y el resultado que esperamos.

19acd01e28e842008dab789fe4543bd4 -> 19acd01e-28e8-4200-8dab-789fe4543bd4


1 Creamos un script para nodeJS, pero con cualquier framework JS también vale. En mi caso, he creado un fichero script-parser-id.js.

2 Vamos a pasar por argumentos al script, el id que queremos parsear.

node script-parser-id.js 19acd01e28e842008dab789fe4543bd4

3 En nuestro script, recogemos los argumentos y declararemos el primero como stringId.

const myArgs = process.argv.slice(2);
console.log('myArgs: ', myArgs[0]);
const stringId = myArgs[0];

4 Declaramos como let ( ya que vamos a ir sobrescribiendo en un bucle) el parsedId.

let parsedId = '';

5 Empezamos nuestro for, dependiendo de la longitud de nuestro stringId (que en nuestro caso siempre va a ser la misma).

for (var i = 1; i < stringId.length; i++) {
 parsedId = parsedId.concat(stringId.charAt(i));
 if (i === 8 || i === 12 || i === 16 || i === 20){
   parsedId = parsedId.concat('-');
 }
}
console.log(parsedId);

Esto podría parecer que funciona, pero... NO. Recordamos que en JS, se empieza a contar desde el 0.


6 Ahora sí, empezamos a contar desde 0, por tanto las posiciones que hemos de añadir el guión también empiezan desde este número.


for (var i = 0; i < stringId.length; i++) {

 parsedId = parsedId.concat(stringId.charAt(i));
 if (i === 7 || i === 11 || i === 15 || i === 19){
 parsedId = parsedId.concat('-');
    }
}
console.log(parsedId);

7 Nuestro resultado deseado.



PD: No parseeis tanto como el de la imagen.


 
 
 

Comments


Post: Blog2_Post

Subscribe Form

Thanks for submitting!

  • Twitter
  • LinkedIn

©2020 por pavazmoiscoding. Creada con Wix.com

bottom of page