Cómo crear un ORM en Node.js

Cómo crear un ORM en Node.js

¿Qué es un ORM?

En términos simples, un sistema ORM es una técnica en la que se utiliza un paradigma orientado a objetos para crear un mapeo entre la aplicación y la base de datos para realizar la manipulación de datos y la consulta directamente.


Cuando se trata de recuperar e insertar sobre joins y relaciones, se seguirá el mismo paradigma para manipular o consultar datos relacionados con las operaciones.


Por ejemplo, una simple consulta de unión interna consultará los datos así:


Esta consulta inner join devolverá una lista de datos en filas, pero es posible que desee agregarla en un formato más legible.


Comencemos

He creado un pequeño boilerplate para que las cosas comiencen antes. También estoy asumiendo que tienes una comprensión de Node.js y sabes cómo conectarte a las bases de datos antes de comenzar. Pero sea cual sea tu nivel de habilidad, puedes encontrar el código fuente aquí.


Con nuestro código fuente, ejecuta los siguientes comandos en el terminal:


Ahora, si usted va a la ruta localhost:5000/ verá un objeto vacío que aparece. Hay una carpeta llamada migrations donde he añadido 3 tablas es decir, los usuarios, los proyectos y las páginas relacionadas con la moda lineal, respectivamente, en sus migraciones utilizando el paquete db-migrate 


La aplicación está construida con Express, así que puedes leer sobre eso también si no lo has usado antes.


Esquema

El esquema actual de nuestra base de datos es:


  • Tabla de usuarios
  • Mesa de proyecto ( 1— m con Usuario)
  • Tabla de páginas ( 1 — m con Proyecto)

Y nuestro enfoque será crear una clase que será heredada en todos los archivos de los modelos con los mismos métodos que serán compartidos entre todos como, obtener o guardar.


Vamos a crear una carpeta y un archivo llamado /models/index.js y crear una clase en ella llamada DatabaseOperations:


Aquí estamos exportando la clase con un simple método constructor para obtener el nombre común.


Vamos a crear archivos de modo y poner algo de contenido allí como las imágenes de abajo:


Estas son clases simples que sólo utilizan la clase de operaciones de base de datos como padre.


Ahora, vamos a crear un método dentro de DatabaseOperation para obtener los registros


Pero espera, aunque estemos usando clases necesitamos algo para construir nuestras consultas correctamente así que primero crea un constructor de consultas para generarlas:


Aquí estamos utilizando dos métodos para obtener con el filtro y guardar el registro. Sólo construye las consultas. Esto no construirá las consultas nativas en lugar de construir la consulta del paquete para formular la ventaja del paquete.


Veamos ahora cómo crear los métodos GET y POST para DatabaseOperation.


Vamos a utilizarlos, actualizar las rutas para hacer uso de estos métodos para almacenar y obtener los registros


Gestionar la relación

También podemos gestionar las relaciones para mantener el orden de obtención de los datos. Para gestionar tenemos que hacer algunos otros elementos también, tales como:


  • Añadir un nuevo método en el constructor de consultas
  • Añadir un nuevo método en la clase DatabaseOperation para incluir el registro
  • Añadir una entrada individual para obtener la relación

Ver como se hace en los enlaces del artículo de relación, otro día actualizaré el artículo con el siguiente y más robusto enfoque para gestionarlo.


A continuación se muestra un ejemplo de relación que incluye


Conclusión

Ahora hemos creado nuestro ORM personalizado para obtener, guardar y otras operaciones en múltiples tablas al mismo tiempo.


He actualizado el repo con otros métodos también que incluyen:


  • Actualizar
  • Borrar
  • Incluir (relación)

Puedes encontrar el código fuente en la rama ORM del repositorio.


Reactions

0

0

0

1

Access hereTo be able to comment

TheWhiteCode.com is not the creator or owner of the images shown, references are: