Untitled
unknown
javascript
6 months ago
2.7 kB
3
Indexable
const http = require("http"); const cursos = require("./cursos"); const servidor = http.createServer((req, res) => { // Configuración de las cabeceras comunes para todas las solicitudes res.setHeader("Content-Type", "application/json"); switch (req.method) { case "GET": return manejarSolicitudesGET(req, res); case "POST": return manejarSolicitudesPOST(req, res); default: res.statusCode = 501; // 501 Not Implemented return res.end( JSON.stringify({ error: `Método ${req.method} no soportado` }) ); } }); const port = 3000; servidor.listen(port, () => console.log(`Servidor corriendo en puerto ${port}`) ); function manejarSolicitudesGET(req, res) { const path = req.url; if (path === "/") { res.statusCode = 200; res.end(JSON.stringify({ mensaje: "Bienvenido a la API de cursos" })); } else if (path === "/cursos") { res.end(JSON.stringify(cursos)); } else { res.statusCode = 404; // 404 Not Found res.end(JSON.stringify({ error: "Recurso no encontrado" })); } } // Manejar solicitudes POST function manejarSolicitudesPOST(req, res) { const path = req.url; if (path === "/cursos/programacion") { let body = ""; // Escuchar los datos que llegan en partes (chunks) req.on("data", (content) => { body += content.toString(); }); // Cuando los datos terminan de llegar req.on("end", () => { try { const datos = JSON.parse(body); res.statusCode = 201; res.end( JSON.stringify({ mensaje: "Curso de programación recibido correctamente", curso: datos, }) ); } catch (error) { res.statusCode = 400; // 400 Bad Request res.end(JSON.stringify({ error: "Datos inválidos en la solicitud" })); } }); } else { res.statusCode = 404; // 404 Not Found res.end(JSON.stringify({ error: "Ruta no encontrada para POST" })); } } const infoCursos = { programacion: [ { id: 1, titulo: "Aprende Python", lenguaje: "python", vistas: 15000, nivel: "basico", }, { id: 2, titulo: "Pyhton intermedio", lenguaje: "python", vistas: 13553, nivel: "intermedio", }, { id: 3, titulo: "Aprende javascript", lenguaje: "javascript", vistas: 102223, nivel: "basico", }, ], matematicas: [ { id: 1, titulo: "Aprende Calculo", tema: "calculo", vistas: 12427, nivel: "basico", }, { id: 2, titulo: "Aprende Algebra", tema: "algebra", vistas: 15722, nivel: "intermedio", }, ], }; module.exports = infoCursos;
Editor is loading...
Leave a Comment