Commit inicial

This commit is contained in:
Luiz F Picolo 2023-05-29 10:45:02 -04:00
commit 6a0f089370
8 changed files with 2225 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
node_modules

6
README.md Normal file
View File

@ -0,0 +1,6 @@
# Projeto-Interdisciplinar
Projeto interdisciplinar entre as disciplinas
- Bando de dados 3 (BD3),
- Programação e Tecnologias aplicadas a clientes 3 (PTAC 3)
- Programação e Tecnologias aplicadas a Servidor 2 (PTAS 2)

21
db.js Normal file
View 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 };

27
index.js Normal file
View File

@ -0,0 +1,27 @@
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.listen(3000, function() {
console.log('App de Exemplo escutando na porta 3000!')
});

51
models/pessoa.js Normal file
View File

@ -0,0 +1,51 @@
const db = require("../db");
class Pessoa {
static async select() {
try {
const connect = await db.connect();
const sql = ""
return await connect.query(sql);
} catch (error) {
console.error('Erro em select:', error);
throw error;
}
}
static async insert(data) {
try {
const connect = await db.connect();
const sql = "";
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 = "";
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 = "";
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

File diff suppressed because it is too large Load Diff

18
package.json Normal file
View 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
View 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');