Iniciando
- npm init -y
- criar
.gitignore
com:
node_modules
.env
Instalação
- npm i -D nodemon@2.0.19
- npm i express@4.17
- npm i mysql2@2.3
- npm i dotenv@16.0.1
Criar dentro do da raiz (como for nescessario):
- arquivo
docker-compose.yaml
- arquivo
.env
exemplo de conteúdo:
MYSQL_HOST=localhost
MYSQL_PORT=porta_que_vai_ser_usada
MYSQL_USER=nome_de-usuario
MYSQL_PASSWORD=senha
MYSQL_DATABASE_NAME=nome_do_banco_de_dados
MYSQL_WAIT_FOR_CONNECTIONS=true
MYSQL_CONNECTION_LIMIT=10
MYSQL_QUEUE_LIMIT=0
Criar
- diretório
src
- arquivo
server.js
no src - adicionar
require('dotenv').config();
no server.js - diretório
routes
no src - arquivo
router
no routes
exemplo para o router:
const express = require('express');
const router = express.Router();
// o '/' = a '/base_do_router/' vindo do app
router.post('/', (req, res) => {});
module.exports = router;
- arquivo
app.js
no src
exemplo para o app:
const express = require('express');
const router = require('./routes/router');
const app = express();
app.use(express.json());
app.use('/base_do_router', router);
module.exports = app;
(se for ser útilizado)
- banco de dados
Configurar package.json
:
exemplo:
{
"name": "nome_projeto",
"version": "1.0.0",
"description": "",
"main": "src/server.js",
"scripts": {
"start": "node src/server.js",
"dev": "nodemon src/server.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"nodemon": "^2.0.19"
}
}
Criar conexão com o banco de dados:
- diretorio
db
- arquivo
connection.js
no db
conteúdo:
const mysql = require('mysql2/promise');
const connection = mysql.createPool({
host: process.env.MYSQL_HOST,
port: process.env.MYSQL_PORT,
user: process.env.MYSQL_USER,
password: process.env.MYSQL_PASSWORD,
database: process.env.MYSQL_DATABASE_NAME,
waitForConnections: process.env.MYSQL_WAIT_FOR_CONNECTIONS,
connectionLimit: process.env.MYSQL_CONNECTION_LIMIT,
queueLimit: process.env.MYSQL_QUEUE_LIMIT,
});
module.exports = connection;
- arquivo
nome_relacionado_com_a_funcaoDB.js
no db
exemplos:
const conn = require('./connection');
// '?' é substituido na função pelos elementos dentro do array do segundo parâmetro
const insert = (person) => conn.execute(
`INSERT INTO people
(first_name, last_name, email, phone) VALUES (?, ?, ?, ?)`,
[person.firstName, person.lastName, person.email, person.phone],
);
const findAll = () => conn.execute('SELECT * FROM people');
const findById = (id) => conn.execute('SELECT * FROM people WHERE id = ?', [id]);
const update = (person, id) => conn.execute(
`UPDATE people
SET first_name = ?, last_name = ?, email = ?, phone = ? WHERE id = ?`,
[person.firstName, person.lastName, person.email, person.phone, id],
);
const remove = (id) => conn.execute('DELETE FROM people WHERE id = ?', [id]);
module.exports = {
insert,
findAll,
findById,
update,
remove,
};