Trabalhando com bancos de dados em TypeScript: PostgreSQL e MongoDB para iniciantes

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course
```html

Trabalhando com Bancos de Dados em TypeScript: PostgreSQL e MongoDB para Iniciantes



TypeScript é uma extensão estritamente tipada do JavaScript que adiciona confiabilidade e previsibilidade ao código. Ao trabalhar com bancos de dados (BD), TypeScript é especialmente útil: você pode definir tipos para entidades, verificar a correção das consultas em tempo de compilação e evitar muitos erros de runtime. Neste artigo, veremos como conectar-se aos dois bancos de dados mais populares — o relacional PostgreSQL e o orientado a documentos MongoDB — e realizar operações básicas com dados. O material é voltado para desenvolvedores iniciantes familiarizados com os fundamentos do TypeScript.



Preparação do Ambiente e Instalação de Dependências



Antes de escrever código, é necessário configurar o projeto. Crie um novo diretório e inicialize o projeto:



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


Agora, instale as bibliotecas para trabalhar com bancos de dados. Para PostgreSQL, usaremos TypeORM (um ORM popular com bom suporte a TypeScript), e para MongoDB, Mongoose (uma biblioteca para modelagem de esquemas e trabalho com MongoDB).



npm install typeorm reflect-metadata pgnpm install mongoose


Instale também os tipos para Node.js e as configurações para TypeORM:



npm install @types/node --save-dev


No arquivo tsconfig.json, certifique-se de incluir as opções:



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


Agora a estrutura do projeto está pronta. Crie a pasta src e, dentro dela, os arquivos para trabalhar com cada BD.



Trabalhando com PostgreSQL via TypeORM



Configuração da Conexão



TypeORM permite trabalhar com BD através de decoradores e entidades. Vamos criar o arquivo src/postgres.ts e configurar a conexão com o banco de dados PostgreSQL local 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, // cria tabelas automaticamente (apenas para desenvolvimento) logging: false, entities: ["src/entity/**/*.ts"],});


Criação de uma Entidade (Entity)



Uma entidade é uma classe que é mapeada para uma tabela no BD. Vamos criar a pasta src/entity e o arquivo 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;}


Executando Operações CRUD



Agora, vamos escrever funções para criar, ler, atualizar e deletar usuários no arquivo 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 — criação de um novo usuário const newUser = userRepository.create({ name: "Ivan Petrov", email: "ivan@example.com", age: 25, }); await userRepository.save(newUser); console.log("Usuário criado:", newUser);

// READ — leitura de todos os usuários const allUsers = await userRepository.find(); console.log("Todos os usuários:", allUsers);

// UPDATE — atualização da idade do usuário com id=1 const userToUpdate = ```

Blogs

Book Recommendations