Skip to content

Commit

Permalink
Pagina principal completa
Browse files Browse the repository at this point in the history
  • Loading branch information
mariajosearcano committed Jun 10, 2024
1 parent b2f8e04 commit e36ccfe
Show file tree
Hide file tree
Showing 1,140 changed files with 176,904 additions and 83,843 deletions.
148 changes: 148 additions & 0 deletions app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
const express = require("express"); //framework de node.js
const app = express();
const path = require("path"); //modulo de node.js para manejar rutas de archivos
const fs = require("fs"); //modulo de node.js para manejar archivos
const MongoClient = require('mongodb').MongoClient;

const rutaArchivo = path.join( //join: toma cualquier numero de segmentos de ruta (a archivos) y los une mediante (\|/ dependiendo del sistema operativo)
// //basicamente join se encarga de unir los segmentos de ruta en una sola ruta de archivo de manera multiplataforma
__dirname, //variable de entorno proporcionada por Node.js que contiene la ruta absoluta del directorio actual desde el que se esta ejecutando el script
"public",
"modelo",
"datos.json"
)

const datosVacios = [];

// Ruta para guardar los datos en el archivo datos.json

; //ruta del archivo JSON donde se guardan los datos*/

// Configurar el directorio de archivos estáticos
app.use(express.static(path.join(__dirname, "public"))); //se configura public de directorio para archivos estaticos (HTML, CSS, JS, etc)
app.use(express.json()); // Middleware para analizar solicitudes con cuerpo JSON
/*
En resumen, un middleware es una función que se ejecuta entre la recepción de la solicitud (req) y la finalización de la respuesta (res). Puede realizar tareas como:
1. Ejecutar cualquier código
2. Realizar cambios en los objetos de solicitud (req) y respuesta (res)
3. Finalizar el ciclo de solicitud-respuesta
4. Invocar la siguiente función middleware en la pila
*/
// parsear el cuerpo de la solicitud que viene como application/json a JavaScript (asi parseara todas las solicitudes entrantes)

// Ruta para la página principal
app.get("/", function (req, res) { //funcion de Express que define una ruta para manejar las solicitudes tipo HTTP GET
res.sendFile(path.join(__dirname, "public", "vista", "index.html"));
}); //se activa cuando se hace una solicitud GET a la raiz del servidor ("/")
//o sea que se ejecutara cuando se acceda a la URL base de la aplicacion (http://localhost:3000/)
//sendFile: envia el archivo especificado al cliente

// Ruta para otra página HTML
app.get("/dtoPersonal.html", function (req, res) {
res.sendFile(path.join(__dirname, "public", "vista", "dtoPersonal.html"));
});

app.get("/Login.html", function (req, res) {
res.sendFile(path.join(__dirname, "public", "vista", "Login.html"));
});

app.get('/index.html', function(req, res) {
res.sendFile(path.join(__dirname, 'public', 'vista', 'index.html'));
}); //no es necesario, ya con especificar la ruta raiz, eso vasta

const uri = 'mongodb://127.0.0.1:27017'; // Reemplaza con la URI de tu instancia de MongoDB

async function connectToMongoDB() {
const client = new MongoClient(uri);
await client.connect();
return client.db('dbAgenda'); // Reemplaza 'dbAgenda' con el nombre de tu base de datos
}

// Obtener todas las personas
app.get('/verificarDatos', async (req, res) => {
try {
const db = await connectToMongoDB();
const personas = await db.collection('Personas').find().toArray();
res.status(200).json({ contieneDatos: personas.length > 0, personas });
} catch (error) {
console.error('Error al obtener los datos:', error);
res.status(500).send('Error al verificar los datos');
}
});



// Agregar una nueva persona
app.post('/guardarDatos', async (req, res) => {
try {
const db = await connectToMongoDB();
const persona = req.body;
await db.collection('Personas').insertOne(persona);
res.status(200).send('Datos guardados correctamente');
} catch (error) {
console.error('Error al guardar los datos:', error);
res.status(500).send('Error al guardar los datos');
}
});

app.post('/guardarDatosJson', (req, res) => {
try {
// Obtener los nuevos datos del cuerpo de la solicitud
const nuevosDatos = req.body;

// Convertir los nuevos datos a formato JSON
const jsonNuevosDatos = JSON.stringify(nuevosDatos, null, 2); // El segundo argumento 'null' es para opciones de formato JSON y el tercer argumento '2' es para la indentación de dos espacios

// Escribir los nuevos datos en el archivo datos.json
fs.writeFile('public/modelo/datos.json', jsonNuevosDatos, (err) => {
if (err) {
console.error('Error al guardar los datos en el archivo:', err);
res.status(500).send('Error al guardar los datos');
} else {
console.log('Datos guardados en el archivo correctamente');
res.status(200).send('Datos guardados correctamente');

}
});
} catch (error) {
console.error('Error al procesar la solicitud:', error);
res.status(500).send('Error al procesar la solicitud');
}
});



// Eliminar una persona
app.post('/borrarDatos', async (req, res) => {
try {
const db = await connectToMongoDB();
const { email } = req.body; //se extrae la propiedad email del objeto req.body y se asigna a una constante llamada email
await db.collection('Personas').deleteOne({ email }); //La función deleteOne busca un documento en la colección Personas donde el campo email coincida con el valor de la constante email. Si encuentra un documento coincidente, lo elimina
res.status(200).send('Datos borrados correctamente');
} catch (error) {
console.error('Error al borrar los datos:', error);
res.status(500).send('Error al borrar los datos');
}
});

// Actualizar una persona
app.put('/actualizarDatos', async (req, res) => {
try {
const db = await connectToMongoDB();
const personaActualizada = req.body;
const { email } = personaActualizada;
await db.collection('Personas').updateOne({ email }, { $set: personaActualizada });
res.status(200).send('Datos actualizados correctamente');
} catch (error) {
console.error('Error al actualizar los datos:', error);
res.status(500).send('Error al actualizar los datos');
}
});

// Iniciar el servidor en el puerto 3000
const PORT = process.env.PORT || 3000;//verifica si la variable de entorno PORT esta definida, si no, se asigna el valor 3000
app.listen(PORT, () => {
console.log(`Servidor corriendo en http://localhost:${PORT}`);
});

Binary file removed assets/cards/deshojando margaritas.png
Binary file not shown.
Binary file not shown.
Binary file removed assets/cards/el caballero de la armadura oxidada.png
Binary file not shown.
Binary file removed assets/cards/el kerigma.png
Binary file not shown.
Binary file removed assets/cards/el olvido que seremos.png
Binary file not shown.
Binary file removed assets/cards/el tunel.png
Binary file not shown.
Binary file removed assets/cards/elogio de la mujer fuerte.png
Binary file not shown.
Binary file removed assets/cards/la quinta montaña.png
Binary file not shown.
Binary file removed assets/cards/matilda.png
Binary file not shown.
Loading

0 comments on commit e36ccfe

Please sign in to comment.