Antes de ensina-lo, esse é o meu post de número 1 na Dev.to, aqui eu estarei ensinando a como instalar, configurar e utilizar o Express, MongoDB e Mongoose em dezembro de 2024, lembrando que pode vir a ter modificações significativas, então, sempre confira a versão que está sendo utilizada e faça a documentação a sua aliada.
A aplicação seguirá alguns pontos como:
- O que é Express, MongoDB e Mongoose;
- Instalação das tecnologias;
- Configurando o arquivo index;
- Editando o package.json;
- Criando o Model/Schema;
- Startando um projeto
Antes de mais nada, você saberia me dizer o que é o Express, MongoDB ou Mongoose? Então, siga os point é a sua definição básica e memoravel.
Express: É um framework para Node.js que oferece recursos para criação de servidores web. Ou seja, ele lida com requisições e respostas de forma rápida, organizada e eficiente.
MongoDB: É um banco de dados não relacional (NoSQL) que utiliza documentos BSON (semelhantes a JSON) para armazenar informações de forma rápida e flexível.
Mongoose: É um ODM (Object Data Modeling) e um dos assistentes mais famosos do MongoDB. Ele auxilia o banco de dados NoSQL a organizar informações, criando modelos para estruturar os dados que serão guardados.
Instalação
Comece abrindo o seu terminal e indo até a pasta de sua preferencia, no meu caso, eu vou na pasta "Documents".
Comando: cd nome-da-pasta
Comando MacOS: cd Documents
Após entrar na pasta 'Documents', cabe você criar e entrar na pasta desejada para começarmos a instalação.
Comando: mkdir nome-da-pasta && cd nome-da-pasta
Comando MacOS: mkdir tutorial-exmb && cd tutorial-exmb
P.s.: O operador "&&" serve para dizer que você QUER criar a pasta E entrar na pasta criada logo em seguida. Esse operador casa em diferentes ocasiões.
A partir daqui, vai de sua escolha se usará Javascript ou Typescript, mas fique tranquilo, eu disponibilizarei as duas formas.
Javascript:
npm init -y
npm install express mongodb mongoose
Typescript
npm init -y
# Instalar dependências principais
npm install express mongodb mongoose
# Instalar dependências de desenvolvimento para TypeScript e tipos
npm install -D typescript @types/node @types/express ts-node
# Criar o arquivo de configuração do TypeScript
npx tsc --init
P.s.: Não é obrigatório ter o MongoDB instalado localmente para utilizá-lo em projetos.
Configurando o arquivo index.js/.ts
# Criando a pasta src e entrando na pasta
mkdir src && cd src
# Criando o arquivo index.js/.ts
touch index.js/.ts
P.s.: Troque o index.js do package.json por index.ts, caso esteja utiliza o Typescript.
Arquivo index.js/.ts
/*
* Caso esteja utilizando Typescript
import express from 'express';
import mongoose from 'mongoose';
*/
const express = require('express');
const mongoose = require('mongoose');
// Configuração do app
const app = express();
const PORT = 3000;
// Middleware para interpretar JSON
app.use(express.json());
// Conexão com o MongoDB usando Mongoose
const mongoURI = 'mongodb://localhost:27017/seu_banco_de_dados'; // Altere para seu URI do MongoDB
mongoose
.connect(mongoURI, { useNewUrlParser: true, useUnifiedTopology: true })
.then(() => {
console.log('Conectado ao MongoDB com sucesso!');
})
.catch((err) => {
console.error('Erro ao conectar ao MongoDB:', err.message);
});
// Rotas básicas
app.get('/', (req, res) => {
res.send('Bem-vindo ao servidor Express com MongoDB!');
});
// Porta onde o servidor será executado
app.listen(PORT, () => {
console.log(`Servidor rodando em http://localhost:${PORT}`);
});
Editando o package.json com Javascript
# Se quiser utilizar o nodemon, instale com npm install nodemon
"scripts": {
"start": "node index.js", // Inicia a aplicação
"dev": "nodemon index.js", // Executa o app com nodemon (reinício automático)
"lint": "eslint . --fix", // Lint e correção automática do código
"test": "jest" // Roda os testes usando Jest
}
Editando o package.json com Typescript
"scripts": {
"start": "node dist/index.js", // Executa o código já compilado
"build": "tsc", // Compila o TypeScript para JavaScript
"dev": "ts-node src/index.ts", // Executa o TypeScript diretamente com ts-node
"lint": "eslint . --ext .ts --fix", // Lint do código TypeScript
"test": "jest", // Testes com Jest
"watch": "tsc --watch", // Compila automaticamente ao salvar
"clean": "rm -rf dist" // Limpa a pasta de build
}
Criando o Model/Schema
Começamos com a criação da pasta e arquivo seguindo o exemplo abaixo. Atente-se a extensão.
mkdir models && cd/models && touch user.model.js/.ts
Após a criação, utilizemos dessa forma.
Versão Javascript: Utilizando const/require com module.exports.
// user.model.js
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
name: {
type: String,
required: true,
},
username: {
type: String,
required: true,
unique: true
},
email: {
type: String,
required: true,
unique: true
},
password: {
type: String,
required: true,
},
}, { timestamps: true });
module.exports = mongoose.model('User', userSchema);
Versão Typescript: Utilizando a versão mais atual de import/export.
// user.model.ts
import { model, Schema } from "mongoose";
const userSchema = new mongoose.Schema({
name: {
type: String,
required: true,
},
username: {
type: String,
required: true,
unique: true
},
email: {
type: String,
required: true,
unique: true
},
password: {
type: String,
required: true,
},
}, { timestamps: true });
export const UserModel = mongoose.model('User', userSchema);
Dando start no projeto
Para testar agora o seu projeto e subir a aplicação para o navegador, vá no terminal e rode o comando: npm run start
.
P.S.: Você pode utilizar o Bruno, Insomnia, Postman ou via CURL para receber a mensagem 'Bem-vindo ao servidor Express com MongoDB!' e começar a criar os métodos HTTP para o model User.
CHEGAMOS AO FINAL DO TUTORIAL :D
Parabéns! 🎉 Você agora configurou com sucesso um servidor básico usando Express, conectou-se a um banco de dados MongoDB com Mongoose, criou o primeiro Model e entendeu os fundamentos de como essas tecnologias trabalham juntas.
Top comments (0)