Fundamentos de Desarrollo Web y Comunicación Cliente-Servidor
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 3,59 KB
1. Conceptos Fundamentales de Arquitectura Web
- ¿Qué es un servidor?
Es un sistema o programa que recibe peticiones y responde con recursos o servicios a otros (clientes). - ¿Qué significa front-end?
Es la parte visible de una aplicación (interfaz), lo que el usuario ve y usa. - ¿Qué significa 127.0.0.1:1234/ids?
- 127.0.0.1: localhost (tu equipo).
- 1234: puerto.
- /ids: ruta o endpoint al que se hace la petición.
- ¿Qué es un request?
Es una solicitud que hace un cliente a un servidor para pedir datos o acciones. - ¿Puede un mismo dispositivo ser cliente y servidor? ¿Por qué?
Sí, porque puede enviar y recibir peticiones al mismo tiempo dependiendo del proceso que ejecute. - ¿Qué es la palabra reservada “extends”?
Se usa para heredar propiedades y métodos de otra clase en Programación Orientada a Objetos (POO). - ¿Para qué sirve host y puerto?
El host identifica el servidor (dirección/IP) y el puerto el servicio específico dentro de ese servidor. - Explica el tipo de dato (arreglos tipo RowDataPacket[] FieldPacket[])
Son arreglos de objetos, donde cada elemento contiene datos estructurados (como filas o campos de una consulta). - Diferencia entre console.log("Hola") y res.send("Hola")
- console.log: muestra información en la consola del servidor.
- res.send: envía una respuesta HTTP al cliente (navegador).
- Aprendizajes de la unidad 3
Comprensión del funcionamiento de la comunicación cliente-servidor mediante el intercambio de requests y responses en aplicaciones web.
2. Ejercicios Prácticos de Implementación
1) Configuración de PoolOptions
const access: PoolOptions = {
host: process.env["DB_HOST"] || "",
port: Number(process.env["DB_PORT"]) || 0,
user: process.env["DB_USER"] || "",
password: process.env["DB_PASSWORD"] || "",
database: process.env["DB_DATABASE"] || ""
};2) Endpoint para saludo dinámico
app.get("/hola/:nombre", (req, res) => {
const { nombre } = req.params;
res.send(`Hola ${nombre}`);
});3) Interface para un renglón de tabla
interface Producto {
id: number;
producto: string;
precio: number;
cantidad: number;
}4) Contenido del archivo .env
PORT=3000
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=1234
DB_DATABASE=mi_bd5) Resultado del console.log
Vamos a conectarnos a root:1234@localhost:3306/mi_bd
6) Manejo de errores al cliente
res.status(500).send("Error en la consulta");7) Gestión de asincronía (async/await)
const [dbResult] = await conn.query("SELECT * FROM califs");8) Tipado de entrada y salida
const [dbResult]: [RowDataPacket[], FieldPacket[]] = await conn.query("SELECT * FROM califs");9) Consulta dinámica segura (evitando SQL Injection)
const dynamicId = 4;
conn.query("SELECT * FROM califs WHERE id = ?", [dynamicId]);10) Modelo Animal en TypeScript
interface Animal {
edad: number;
nombreComun: string;
nombreCientifico: string;
}