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

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

\n\n

O desenvolvimento web moderno raramente dispensa bancos de dados. TypeScript, como uma extensão estritamente tipada sobre JavaScript, oferece excelentes oportunidades para um trabalho seguro e previsível com dados. Neste artigo, vamos analisar como conectar e usar dois bancos de dados populares — o relacional PostgreSQL e o orientado a documentos MongoDB — em projetos TypeScript. O material é voltado para desenvolvedores iniciantes familiarizados com os fundamentos de TypeScript e Node.js.

\n\n

1. Preparação do ambiente e instalação de dependências

\n\n

Antes de começar, certifique-se de ter Node.js e npm instalados. Para trabalhar com TypeScript, instale o compilador e os tipos para Node.js:

\n\n
npm install -g typescript\nnpm init -y\nnpm install typescript @types/node --save-dev\nnpx tsc --init
\n\n

Para trabalhar com bancos de dados, usaremos bibliotecas populares:

\n
    \n
  • TypeORM — ORM para PostgreSQL (e outros bancos SQL)
  • \n
  • Mongoose — ODM para MongoDB
  • \n
\n\n

Instale-as no seu projeto:

\n\n
npm install typeorm reflect-metadata pg\nnpm install mongoose
\n\n

Não se esqueça de adicionar "experimentalDecorators": true e "emitDecoratorMetadata": true no arquivo tsconfig.json.

\n\n

2. Trabalhando com PostgreSQL via TypeORM

\n\n

PostgreSQL é um poderoso SGBD relacional. TypeORM permite trabalhar com ele através de entidades (entities) e repositórios, tornando o código limpo e tipado.

\n\n

2.1. Criando conexão e entidade

\n\n

Vamos criar o arquivo data-source.ts para configurar a conexão:

\n\n
import { DataSource } from "typeorm";\n\nexport const AppDataSource = new DataSource({\n    type: "postgres",\n    host: "localhost",\n    port: 5432,\n    username: "your_user",\n    password: "your_password",\n    database: "your_db",\n    synchronize: true,\n    logging: false,\n    entities: ["src/entity/**/*.ts"],\n});
\n\n

Agora, vamos criar a entidade User no arquivo src/entity/User.ts:

\n\n
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";\n\n@Entity()\nexport class User {\n    @PrimaryGeneratedColumn()\n    id: number;\n\n    @Column()\n    name: string;\n\n    @Column({ unique: true })\n    email: string;\n\n    @Column()\n    age: number;\n}
\n\n

2.2. Operações CRUD com TypeORM

\n\n

Exemplo de criação e obtenção de usuários:

\n\n
import { AppDataSource } from "./data-source";\nimport { User } from "./entity/User";\n\nasync function main() {\n    await AppDataSource.initialize();\n    const userRepository = AppDataSource.getRepository(User);\n\n    // Criação\n    const newUser = userRepository.create({\n        name: "Ivan",\n        email: "ivan@example.com",\n        age: 25\n    });\n    await userRepository.save(newUser);\n    console.log("Usuário criado:", newUser);\n\n    // Leitura de todos\n    const users = await userRepository.find();\n    console.log("Todos os usuários:", users);\n\n    // Atualização\n    await userRepository.update({ id: 1 }, { age: 26 });\n\n    // Exclusão\n    await userRepository.delete({ id: 1 });\n}\n\nmain().catch(console.error);
\n\n

TypeORM gera automaticamente as consultas SQL, e a tipagem do TypeScript protege contra erros em tempo de compilação.

\n\n

3. Trabalhando com MongoDB via Mongoose

\n\n

MongoDB é um banco de dados NoSQL que armazena dados em um formato semelhante a JSON. Mongoose fornece esquema e validação para TypeScript.

\n\n

3.1. Conexão e definição de esquema

\n\n

Vamos criar o arquivo db.ts para a conexão:

\n\n
import mongoose from "mongoose";\n\nexport async function connectDB() {\n    await mongoose.connect("mongodb://localhost:27017/mydb");\n    console.log("Conectado ao MongoDB");\n}
\

Blogs

Book Recommendations