Trabajo con bases de datos en TypeScript: PostgreSQL y MongoDB para principiantes

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

Trabajo con bases de datos en TypeScript: PostgreSQL y MongoDB para principiantes



TypeScript es una extensión fuertemente tipada de JavaScript que añade fiabilidad y previsibilidad al código. Al trabajar con bases de datos (BD), TypeScript es especialmente útil: puedes definir tipos para entidades, verificar la corrección de las consultas en la etapa de compilación y evitar muchos errores en tiempo de ejecución. En este artículo, veremos cómo conectarnos a las dos bases de datos más populares — la relacional PostgreSQL y la orientada a documentos MongoDB — y realizar operaciones básicas con datos. El material está orientado a desarrolladores principiantes familiarizados con los fundamentos de TypeScript.



Preparación del entorno e instalación de dependencias



Antes de escribir código, es necesario configurar el proyecto. Cree un nuevo directorio e inicialice el proyecto:



mkdir ts-db-examplecd ts-db-examplenpm init -ynpm install typescript @types/node ts-node --save-devnpx tsc --init


Ahora instalaremos las bibliotecas para trabajar con bases de datos. Para PostgreSQL usaremos TypeORM (un ORM popular con buen soporte para TypeScript), y para MongoDB — Mongoose (una biblioteca para modelar esquemas y trabajar con MongoDB).



npm install typeorm reflect-metadata pgnpm install mongoose


También instalaremos los tipos para Node.js y la configuración para TypeORM:



npm install @types/node --save-dev


En el archivo tsconfig.json asegúrese de incluir las opciones:



{  "compilerOptions": {    "target": "ES2020",    "module": "commonjs",    "outDir": "./dist",    "rootDir": "./src",    "strict": true,    "esModuleInterop": true,    "experimentalDecorators": true,    "emitDecoratorMetadata": true  }}


Ahora la estructura del proyecto está lista. Cree la carpeta src y dentro de ella los archivos para trabajar con cada BD.



Trabajo con PostgreSQL a través de TypeORM



Configuración de la conexión



TypeORM permite trabajar con BD mediante decoradores y entidades. Crearemos el archivo src/postgres.ts y configuraremos la conexión a la base de datos local PostgreSQL ts_db:



import "reflect-metadata";import { DataSource } from "typeorm";

export const AppDataSource = new DataSource({ type: "postgres", host: "localhost", port: 5432, username: "postgres", password: "password", database: "ts_db", synchronize: true, // crea tablas automáticamente (solo para desarrollo) logging: false, entities: ["src/entity/**/*.ts"],});


Creación de una entidad (Entity)



Una entidad es una clase que se asigna a una tabla en la BD. Crearemos la carpeta src/entity y el archivo User.ts:



import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";

@Entity()export class User { @PrimaryGeneratedColumn() id: number;

@Column({ length: 100 }) name: string;

@Column({ unique: true }) email: string;

@Column({ default: 18 }) age: number;}


Realización de operaciones CRUD



Ahora escribiremos funciones para crear, leer, actualizar y eliminar usuarios en el archivo src/postgres-crud.ts:



import { AppDataSource } from "./postgres";import { User } from "./entity/User";

async function main() { await AppDataSource.initialize(); const userRepository = AppDataSource.getRepository(User);

// CREATE — creación de un nuevo usuario const newUser = userRepository.create({ name: "Iván Petrov", email: "ivan@example.com", age: 25, }); await userRepository.save(newUser); console.log("Usuario creado:", newUser);

// READ — lectura de todos los usuarios const allUsers = await userRepository.find(); console.log("Todos los usuarios:", allUsers);

// UPDATE — actualización de la edad del usuario con id=1 const userToUpdate =

Blogs

Book Recommendations