Exemplo didático de CRUD básico com nodejs mysql e express
- Node.js: O Node.js deve estar instalado no seu sistema. Se não estiver, você pode baixá-lo e instalá-lo a partir do site oficial do Node.js.
- MySQL: Você também precisará do MySQL instalado. Se não estiver, você pode baixá-lo e instalá-lo a partir do site oficial do MySQL.
- Crie uma nova pasta no seu sistema para o projeto.
- Abra um terminal nesta pasta.
- Execute o comando
npm init -y
para criar um novo arquivopackage.json
. - Instale o Express, MySQL2 e o body-parser com o comando
npm install express mysql2 body-parser
.
- Copie o código fornecido para um novo arquivo chamado
app.js
na pasta do projeto. - No terminal, execute o comando
node app.js
para iniciar o servidor. - Abra um navegador e vá para
http://localhost:3000
para ver o aplicativo em execução.
O aplicativo é um sistema CRUD simples para gerenciar alunos. Aqui estão as principais funcionalidades:
-
Listar Alunos (
/getalunos
): Esta rota exibe uma lista de todos os alunos no banco de dados. Cada aluno tem um ID, nome e idade. -
Adicionar Aluno (
/addaluno
): Esta rota exibe um formulário para adicionar um novo aluno. O formulário aceita o nome e a idade do aluno. -
Apagar Aluno (
/deletealuno
): Esta rota exibe um formulário para apagar um aluno existente. O formulário aceita o ID do aluno.
Claro, vamos analisar o código em detalhes:
- Importação de módulos: O código começa importando os módulos necessários -
express
,mysql2
ebody-parser
.
const express = require('express');
const mysql = require('mysql2');
const bodyParser = require('body-parser');
- Configuração do Express: Em seguida, uma instância do Express é criada e o body-parser é configurado para analisar corpos de solicitação JSON e dados de formulário codificados em URL.
const app = express();
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
- Conexão com o banco de dados: Uma conexão com o banco de dados MySQL é criada usando o módulo
mysql2
. A conexão é estabelecida imediatamente.
const db = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'escola'
});
db.connect((err) => {
if(err){
throw err;
}
console.log('MySql Connected...');
});
- Rotas do Express: Várias rotas do Express são definidas para lidar com solicitações HTTP GET e POST. Cada rota corresponde a uma operação CRUD diferente no banco de dados.
app.get('/', (req, res) => { ... });
app.get('/addaluno', (req, res) => { ... });
app.get('/deletealuno', (req, res) => { ... });
app.post('/deletealuno', (req, res) => { ... });
app.post('/addaluno', (req, res) => { ... });
app.get('/getalunos', (req, res) => { ... });
- Iniciando o servidor: Finalmente, o servidor Express é iniciado na porta 3000.
app.listen('3000', () => {
console.log('Server started on port 3000');
});