Como conectar uma API Node.js a um banco de dados MySQL?

A conexão entre Node.js e MySQL pode ser feita utilizando o Sequelize, um ORM que facilita a manipulação de dados.

Como conectar uma API Node.js a um banco de dados MySQL?

O MySQL é um dos bancos de dados relacionais mais utilizados no mundo. No Node.js, podemos conectá-lo usando bibliotecas como mysql2 ou um ORM como o Sequelize.

1. Instalando as dependências

Antes de conectar ao MySQL, precisamos instalar o Sequelize e o driver do MySQL:

npm install sequelize mysql2 dotenv

2. Configurando a conexão

Crie um arquivo .env para armazenar as credenciais do banco de dados:

DB_HOST=localhost
DB_USER=root
DB_PASSWORD=senha
DB_NAME=meubanco
DB_DIALECT=mysql

Agora, crie um arquivo database.js para gerenciar a conexão:

const { Sequelize } = require('sequelize');
require('dotenv').config();

const sequelize = new Sequelize(
    process.env.DB_NAME,
    process.env.DB_USER,
    process.env.DB_PASSWORD,
    {
        host: process.env.DB_HOST,
        dialect: process.env.DB_DIALECT,
    }
);

const conectarBanco = async () => {
    try {
        await sequelize.authenticate();
        console.log('Conectado ao MySQL');
    } catch (error) {
        console.error('Erro ao conectar ao MySQL:', error);
        process.exit(1);
    }
};

module.exports = { sequelize, conectarBanco };

3. Integrando a conexão com o servidor

No arquivo server.js, importe a conexão:

const express = require('express');
const { conectarBanco } = require('./database');

const app = express();
app.use(express.json());

conectarBanco();

app.listen(3000, () => console.log('Servidor rodando na porta 3000'));

4. Criando um modelo de dados com Sequelize

Agora, podemos definir um modelo de dados para armazenar informações no MySQL. Exemplo de um modelo para usuários:

const { Sequelize, DataTypes } = require('sequelize');
const { sequelize } = require('../database');

const Usuario = sequelize.define('Usuario', {
    id: { type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true },
    nome: { type: DataTypes.STRING, allowNull: false },
    email: { type: DataTypes.STRING, allowNull: false, unique: true }
}, {
    timestamps: false,
});

module.exports = Usuario;

5. Criando uma rota para salvar dados

Podemos criar uma rota para cadastrar usuários no banco:

const Usuario = require('./models/Usuario');

app.post('/usuarios', async (req, res) => {
    try {
        const novoUsuario = await Usuario.create(req.body);
        res.status(201).json(novoUsuario);
    } catch (error) {
        res.status(400).json({ erro: 'Erro ao criar usuário' });
    }
});

Agora, podemos enviar uma requisição POST para http://localhost:3000/usuarios com um JSON:

{
    "nome": "João",
    "email": "joao@email.com"
}

Conclusão

A integração entre Node.js e MySQL com Sequelize permite manipular bancos relacionais de maneira eficiente. O uso de ORMs simplifica a escrita de consultas e facilita a manutenção do código.

O MySQL é um dos bancos de dados relacionais mais utilizados no mundo, sendo amplamente adotado por grandes empresas e startups. Com Sequelize, conseguimos mapear tabelas para objetos JavaScript, tornando a manipulação de dados mais intuitiva.

Empresas como Uber, Airbnb e PayPal utilizam bancos relacionais para gerenciar milhões de registros. Frameworks modernos como NestJS e Next.js oferecem suporte nativo para integração com bancos SQL.

Algumas aplicações:

  • Armazenamento de usuários e autenticação
  • Gestão de pedidos e transações em e-commerces
  • Aplicações corporativas que exigem estruturação de dados
  • Integração com sistemas legados baseados em SQL
  • Gerenciamento de grandes volumes de informações

Dicas para quem está começando

  • Use sequelize.authenticate() para testar a conexão.
  • Armazene as credenciais do banco em variáveis de ambiente.
  • Defina relações entre tabelas usando Sequelize para organizar os dados.
  • Utilize timestamps: false caso não queira campos de data automáticos.
  • Teste consultas SQL com ferramentas como MySQL Workbench ou DBeaver.

Contribuições de Lucas Fernandes

Compartilhe este tutorial: Como conectar uma API Node.js a um banco de dados MySQL?

Compartilhe este tutorial

Continue aprendendo:

Como conectar uma API Node.js a um banco de dados MongoDB?

A conexão entre Node.js e MongoDB é feita utilizando a biblioteca Mongoose, facilitando a manipulação de dados no banco.

Tutorial anterior

Como fazer upload de arquivos em uma API Node.js?

O upload de arquivos em uma API Node.js pode ser feito com a biblioteca Multer, permitindo armazenar imagens, PDFs e outros formatos.

Próximo tutorial