Commit inicial
This commit is contained in:
commit
2c5423a18d
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
node_modules
|
21
db.js
Normal file
21
db.js
Normal file
@ -0,0 +1,21 @@
|
||||
const { Pool } = require('pg');
|
||||
|
||||
let connect = async function () {
|
||||
try {
|
||||
if (global.connection) {
|
||||
return Promise.resolve(global.connection);
|
||||
}
|
||||
|
||||
const pool = new Pool({
|
||||
connectionString: ''
|
||||
});
|
||||
|
||||
global.connection = pool;
|
||||
return Promise.resolve(pool);
|
||||
} catch (error) {
|
||||
console.error('Erro ao estabelecer a conexão:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = { connect };
|
57
index.js
Normal file
57
index.js
Normal file
@ -0,0 +1,57 @@
|
||||
const express = require('express');
|
||||
const path = require('path');
|
||||
const Pessoa = require("./models/pessoa");
|
||||
|
||||
const app = express();
|
||||
|
||||
// view engine setup
|
||||
app.set('views', path.join(__dirname, 'views'));
|
||||
app.set('view engine', 'ejs');
|
||||
|
||||
app.use(express.json());
|
||||
app.use(express.urlencoded({ extended: true}));
|
||||
app.use(express.static(path.join(__dirname, 'public')));
|
||||
|
||||
app.get('/pessoas', async function(req, res){
|
||||
try {
|
||||
var pessoas = await Pessoa.select();
|
||||
res.json(pessoas.rows);
|
||||
} catch (error) {
|
||||
console.error('Erro ao buscar pessoas:', error);
|
||||
res.status(500).json({ error: 'Ocorreu um erro ao buscar pessoas' });
|
||||
}
|
||||
});
|
||||
|
||||
app.post('/pessoas', async function(req, res){
|
||||
try {
|
||||
var pessoa = await Pessoa.insert(req.body);
|
||||
res.json(pessoa.rows);
|
||||
} catch (error) {
|
||||
console.error('Erro ao inserir pessoa:', error);
|
||||
res.status(500).json({ error: 'Ocorreu um erro ao inserir pessoa' });
|
||||
}
|
||||
});
|
||||
|
||||
app.put('/pessoas', async function(req, res){
|
||||
try {
|
||||
var pessoa = await Pessoa.update(req.body.id, req.body);
|
||||
res.json(pessoa.rows);
|
||||
} catch (error) {
|
||||
console.error('Erro ao atualizar pessoa:', error);
|
||||
res.status(500).json({ error: 'Ocorreu um erro ao atualizar pessoa' });
|
||||
}
|
||||
});
|
||||
|
||||
app.delete('/pessoas', async function(req, res){
|
||||
try {
|
||||
var pessoa = await Pessoa.delete(req.body.id);
|
||||
res.json(pessoa.rows);
|
||||
} catch (error) {
|
||||
console.error('Erro ao atualizar pessoa:', error);
|
||||
res.status(500).json({ error: 'Ocorreu um erro ao atualizar pessoa' });
|
||||
}
|
||||
});
|
||||
|
||||
app.listen(3000, function() {
|
||||
console.log('App de Exemplo escutando na porta 3000!')
|
||||
});
|
51
models/pessoa.js
Normal file
51
models/pessoa.js
Normal file
@ -0,0 +1,51 @@
|
||||
const db = require("../db");
|
||||
|
||||
class Pessoa {
|
||||
static async select() {
|
||||
try {
|
||||
const connect = await db.connect();
|
||||
return await connect.query('SELECT * FROM pessoas');
|
||||
} catch (error) {
|
||||
console.error('Erro em select:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
static async insert(data) {
|
||||
try {
|
||||
console.log("teste")
|
||||
const connect = await db.connect();
|
||||
const sql = 'INSERT INTO pessoas(nome, idade, uf) VALUES ($1, $2, $3) RETURNING id, nome, idade, uf;';
|
||||
const values = [data.nome, data.idade, data.uf];
|
||||
return await connect.query(sql, values);
|
||||
} catch (error) {
|
||||
console.error('Erro em insert:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
static async update(id, data) {
|
||||
try {
|
||||
const connect = await db.connect();
|
||||
const sql = 'UPDATE pessoas SET nome=$1, idade=$2, uf=$3 WHERE id=$4 RETURNING id, nome, idade, uf;';
|
||||
const values = [data.nome, data.idade, data.uf, id];
|
||||
return await connect.query(sql, values);
|
||||
} catch (error) {
|
||||
console.error('Erro em update:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
static async delete(id) {
|
||||
try {
|
||||
const connect = await db.connect();
|
||||
const sql = 'DELETE FROM pessoas WHERE id=$1 RETURNING id, nome, idade, uf;;';
|
||||
return await connect.query(sql, [id]);
|
||||
} catch (error) {
|
||||
console.error('Erro em delete:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Pessoa;
|
2082
package-lock.json
generated
Normal file
2082
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
18
package.json
Normal file
18
package.json
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "projeto-interdisciplinar",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"start": "nodemon index.js"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"ejs": "^3.1.9",
|
||||
"express": "^4.18.2",
|
||||
"nodemon": "^2.0.22",
|
||||
"pg": "^8.11.0"
|
||||
}
|
||||
}
|
19
sql.sql
Normal file
19
sql.sql
Normal file
@ -0,0 +1,19 @@
|
||||
CREATE TABLE pessoas (
|
||||
id SERIAL PRIMARY KEY,
|
||||
nome VARCHAR(255),
|
||||
idade INTEGER,
|
||||
uf CHAR(2)
|
||||
);
|
||||
|
||||
INSERT INTO pessoas (nome, idade, uf)
|
||||
VALUES
|
||||
('John Doe', 25, 'NY'),
|
||||
('Jane Smith', 30, 'CA'),
|
||||
('Michael Johnson', 35, 'TX'),
|
||||
('Emily Davis', 28, 'FL'),
|
||||
('Robert Brown', 32, 'OH'),
|
||||
('Sophia Wilson', 27, 'IL'),
|
||||
('William Anderson', 40, 'PA'),
|
||||
('Olivia Thompson', 22, 'GA'),
|
||||
('James Martinez', 33, 'MI'),
|
||||
('Emma Taylor', 29, 'NC');
|
Loading…
Reference in New Issue
Block a user