Post Top Ad

Your Ad Spot

lunes, 29 de junio de 2020

Principio de experto en información aplicado a modelos de mangosta

En la programación, el experto en información, o el principio experto, es un enfoque utilizado para determinar dónde delegar responsabilidades. En otras palabras, ¿dónde debe colocar el código que completa tareas específicas? El principio de experto en información ayudará a un desarrollador a colocar la responsabilidad en la clase con la mayor cantidad de información requerida para cumplirla. En este tutorial vamos a limpiar el proceso de generación de tokens web JSON para que nuestro código sea más claro y fácil de mantener.

Eliminar código duplicado

Si ha seguido junto con nuestro tutorial de registro de usuarios para Node.js, sabe que estamos generando un JWT en más de un lugar actualmente. Tanto users.js como auth.js están haciendo una tarea utilizando el código del cortador de cookies. Deberíamos extraer esa lógica para que solo haya un lugar que genere el token. De esa manera, si algo cambia en el futuro, puede hacer sus cambios en un solo lugar, no en muchos. En nuestro caso, podemos agregar un método a un modelo Mongoose para hacer esto.

Agregar un método a un modelo de mangosta

En este momento, el modelo de usuario se ve así.

/models/user.js

En el código anterior, el segundo argumento de la función mongoose.model () es una nueva instancia de mongoose.Schema (). Lo primero que debemos hacer es extraer esto a su propia constante así.
Con eso en su lugar, configurar al usuario ahora es una cuestión simple de esta línea.

Agregar el método al modelo de mangosta

Ahora podemos agregar el método al userSchema así.
El modelo de usuario ahora debe funcionar con los paquetes config y jsonwebtoken, por lo que nos aseguramos de incluir aquellos en la parte superior del archivo. El resto del código se explica por sí mismo con respecto a la extracción del esquema del usuario, la adición de un nuevo método y la creación de un nuevo modelo de usuario.
Ahora tenemos un buen método que podemos usar en otros lugares en nuestro código. Así que ahora tenga en cuenta los cambios en auth.js y users.js. Básicamente, hemos eliminado el código comentado y lo hemos reemplazado con una llamada a user.generateAuthToken ().

/routes/auth.js


/routes/users.js

¡Fantástico!

Prueba del refactor con cartero

Fue un buen refactorizador, pero debemos asegurarnos de que la API siga funcionando según lo previsto. Aquí probamos con Postman enviando una nueva solicitud de Post a http: // localhost: 4000 / api / users / con un objeto JSON en el cuerpo para un nuevo usuario. Tenga en cuenta que recuperamos un objeto de usuario adecuado en la respuesta, por lo que esto significa que funcionó.
método personalizado modelo mangosta funcionando muy bien

Agregar un método a un resumen del modelo de mangosta

En este tutorial, echamos un vistazo rápido a cómo agregar un método a un modelo Mongoose para reducir el código duplicado en otras áreas de nuestra aplicación. Puede agregar tantos métodos como sea necesario siempre que tenga sentido y siga el Principio del experto en información .

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas