TypeORM para JavaScript (Node.js): guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

TypeORM para JavaScript (Node.js): guía completa

1. ¿Qué es TypeORM y para qué sirve?

TypeORM es una potente biblioteca de Object-Relational Mapping (ORM) diseñada para trabajar con bases de datos en el entorno Node.js. Soporta tanto TypeScript como JavaScript, ofreciendo a los desarrolladores una forma cómoda de interactuar con bases de datos relacionales (PostgreSQL, MySQL, MariaDB, SQLite, Microsoft SQL Server, Oracle y CockroachDB) mediante un enfoque orientado a objetos. En lugar de escribir consultas SQL en bruto, trabajas con entidades (Entity) — clases JavaScript comunes que se mapean automáticamente a las tablas de la base de datos.

¿Para qué sirve TypeORM? Primero, acelera significativamente el desarrollo: no necesitas escribir manualmente consultas SQL para operaciones CRUD (Crear, Leer, Actualizar, Eliminar). Segundo, proporciona seguridad de tipos (si usas TypeScript) y protección contra inyecciones SQL gracias al uso de consultas parametrizadas. Tercero, TypeORM incluye un potente Query Builder para consultas complejas, migraciones para gestionar el esquema de la base de datos y soporte para relaciones entre tablas (uno a uno, uno a muchos, muchos a muchos). Esto la convierte en la opción ideal para construir aplicaciones escalables y mantenibles.

A diferencia de otros ORM, TypeORM utiliza decoradores (en TypeScript) o anotaciones (en JavaScript mediante características experimentales), lo que hace que el código sea declarativo e intuitivo. La biblioteca también admite los patrones Active Record y Data Mapper, permitiendo al desarrollador elegir el estilo de trabajo más adecuado. Gracias a su flexibilidad y amplio conjunto de funciones, TypeORM es uno de los ORM más populares en el ecosistema Node.js.

2. Instalación

Para instalar TypeORM en tu proyecto Node.js, usa el gestor de paquetes npm. También necesitarás instalar el controlador para tu base de datos. A continuación se muestran los comandos para los sistemas de gestión de bases de datos más populares.

# Instalación de TypeORM
npm install typeorm --save

# Instalación del controlador para PostgreSQL
npm install pg --save

# Instalación del controlador para MySQL / MariaDB
npm install mysql2 --save

# Instalación del controlador para SQLite
npm install sqlite3 --save

# Instalación del controlador para Microsoft SQL Server
npm install mssql --save

# Instalación del controlador para CockroachDB
npm install pg --save

# Para TypeScript, instala también reflect-metadata y los tipos
npm install reflect-metadata --save
npm install @types/node --save-dev

Después de la instalación, asegúrate de que en tu archivo tsconfig.json (si usas TypeScript) estén incluidas las siguientes configuraciones:

{
  "emitDecoratorMetadata": true,
  "experimentalDecorators": true
}

Para JavaScript (Node.js) no se requieren estas configuraciones, pero puedes usar decoradores experimentales si lo deseas.

3. Inicio rápido — ejemplo mínimo funcional

Vamos a crear una aplicación simple que se conecte a una base de datos SQLite (base de datos de archivo, no requiere instalación de servidor) y realice operaciones básicas.

Crea un archivo index.js y agrega el siguiente código:

const { createConnection, EntitySchema } = require("typeorm");

// Definimos la entidad (Entity) mediante EntitySchema
const UserSchema = new EntitySchema({
    name: "User",
    tableName: "users",
    columns: {
        id: {
            primary: true,
            type: "int",
            generated: true
        },
        firstName: {
            type: "varchar"
        },
        lastName: {
            type: "varchar"
        }
    }
});

Recommendations