Exemplo de aplicativo Node.js com Banco de Dados

Exemplo de aplicativo Node.js com Banco de Dados

Quer criar uma API com Node.js e MYSQL?
Está cansado de criar APIs que só funcionam no localhost?

Nesse tutorial vamos aprenda a desenvolver, configurar e colocar online sua API em Node.js com SSL e domínio personalizado. Tudo explicado de forma simples e prática!

  1. Crie um arquivo package.json na raiz do seu projeto com o seguinte conteúdo
{
  "name": "meu-projeto",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "dev": "node index.js",
    "build": "node index.js",
    "start": "node index.js"
  },
  "dependencies": {
    "body-parser": "^1.20.2",
    "express": "^4.18.2",
    "mysql2": "^2.3.3"
  }
}

 

2. Crie um arquivo index.js na raiz do seu projeto com o seguinte conteúdo

 

// express: É um framework web para Node.js que simplifica a criação de servidores HTTP.
// body-parser: Middleware para interpretar o corpo das requisições HTTP. Ele permite que você use req.body para acessar o corpo da requisição.
// db: É um módulo que, supostamente, permite conectar-se e interagir com um banco de dados. Ele deve estar definido no arquivo db.js em sua estrutura de projeto.

const express = require('express');
const bodyParser = require('body-parser');
const db = require('./db');

//Aqui, criamos uma instância do servidor express e configuramos o body-parser para interpretar corpos de requisição em JSON e também em formato x-www-form-urlencoded (normalmente usado em formulários web tradicionais).
const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

// Create (Criação)
app.post('/usuario', (req, res) => {
    const { nome, email } = req.body;
    const query = 'INSERT INTO usuarios (nome, email) VALUES (?, ?)';
    db.query(query, [nome, email], (err, results) => {
        if(err) throw err;
        res.send('Usuário adicionado com sucesso!');
    });
});

// Read (Leitura)
app.get('/usuarios', (req, res) => {
    db.query('SELECT * FROM usuarios', (err, rows) => {
        if(err) throw err;
        res.json(rows);
    });
});

// Update (Atualização)
app.put('/usuario/:id', (req, res) => {
    const { nome, email } = req.body;
    const query = 'UPDATE usuarios SET nome = ?, email = ? WHERE id = ?';
    db.query(query, [nome, email, req.params.id], (err, results) => {
        if(err) throw err;
        res.send('Usuário atualizado com sucesso!');
    });
});

// Delete (Exclusão)
app.delete('/usuario/:id', (req, res) => {
    const query = 'DELETE FROM usuarios WHERE id = ?';
    db.query(query, [req.params.id], (err, results) => {
        if(err) throw err;
        res.send('Usuário excluído com sucesso!');
    });
});


// Como devemos configurar a porta para funcionar na Integrator Host
const PORT = 4010;

app.listen(PORT, () => {
    console.log(`Server is running on port ${PORT}`);
});

 

3. Crie um arquivo db.js na raiz do seu projeto com o seguinte conteúdo

 

// conexão com o banco de dados mysql.

const mysql = require('mysql2');

const connection = mysql.createConnection({
    host: process.env.DB_HOST,
    user: process.env.DB_USER,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_NAME,
    port: process.env.DB_PORT
});

connection.connect((err) => {
    if(err) throw err;
    console.log('Conectado ao banco de dados!');
});

module.exports = connection;

 

Testando o CRUD com Postman

Com o aplicativo registrado e iniciado corretamente com sucesso, temos o acesso testado e 100% funcional, no qual demonstramos em imagens abaixo:

Adicionando um usuário:


Atualizando um usuário:

Removendo um usuário


Veja também o exemplo em video.