Untitled
unknown
javascript
a year ago
2.7 kB
16
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