Introducción
En este proyecto, aprenderás a crear una API de noticias simple utilizando Node.js. Aprenderás a crear un servidor, manejar diferentes rutas y devolver datos de noticias en un formato específico.
👀 Vista previa
curl http://localhost:8080/news
## Salida:
## [{"channelId":"5572a108b3cdc86cf39001cd","name":"National Focus"},{"channelId":"5572a108b3cdc86cf39001ce","name":"International Focus"}]
curl http://localhost:8080
## Salida:
## 404
🎯 Tareas
En este proyecto, aprenderás:
- Cómo crear un servidor utilizando Node.js
- Cómo manejar la ruta
/newsy devolver datos de noticias - Cómo manejar otras rutas y devolver una respuesta 404
🏆 Logros
Después de completar este proyecto, podrás:
- Comprender los conceptos básicos de creación de un servidor utilizando Node.js
- Implementar una API simple para devolver datos de noticias
- Manejar diferentes rutas y proporcionar respuestas adecuadas
Crea un servidor
Para comenzar, abre el editor. Deberías ver un archivo en el editor: "app.js".
En este paso, aprenderás a crear un servidor utilizando Node.js. Sigue los pasos siguientes para completar este paso:
Abre el archivo
app.jsen tu entorno de codificación.Importa el módulo
http, que proporciona la funcionalidad para crear un servidor:const http = require("http");Crea un nuevo servidor utilizando el método
createServer():const serve = http.createServer();Agrega un controlador de eventos al servidor para manejar las solicitudes entrantes:
serve.on("request", (req, res) => { // TODO: Agrega código para manejar la solicitud });Inicia el servidor y escucha en el puerto 8080:
serve.listen(8080, () => { console.log("El servicio se ha iniciado!"); });
Maneja la ruta /news
En este paso, aprenderás a manejar la ruta /news y devolver datos de noticias. Sigue los pasos siguientes para completar este paso:
Dentro del controlador de eventos de solicitud, configura el encabezado de respuesta para usar el formato
utf8:res.setHeader("Content-type", "text/html;charset=utf8");Verifica la URL solicitada:
if (req.url == "/news") { // Maneja la ruta /news } else { // Maneja otras rutas }Prepara los datos de noticias en el formato requerido:
const data = [ { channelId: "5572a108b3cdc86cf39001cd", name: "National Focus" }, { channelId: "5572a108b3cdc86cf39001ce", name: "International Focus" } ];Envía los datos de noticias como respuesta:
res.end(JSON.stringify(data));
Maneja otras rutas
En este paso, aprenderás a manejar otras rutas que no sean /news.
Dentro del controlador de eventos de solicitud, agrega un bloque
elsepara manejar otras rutas:if (req.url == "/news") { // Maneja la ruta /news //... } else { // Maneja otras rutas res.end("404"); }En el bloque
else, envía una respuesta404para indicar que la ruta solicitada no se encontró.
Ahora, tu archivo app.js debería verse así:
const http = require("http");
const serve = http.createServer();
serve.on("request", (req, res) => {
// TODO: Agrega código para manejar la solicitud
res.setHeader("Content-type", "text/html;charset=utf8");
console.log(req.url);
if (req.url == "/news") {
const data = [
{
channelId: "5572a108b3cdc86cf39001cd",
name: "National Focus"
},
{
channelId: "5572a108b3cdc86cf39001ce",
name: "International Focus"
}
];
res.end(JSON.stringify(data));
} else {
res.end("404");
}
});
serve.listen(8080, () => {
console.log("El servicio se ha iniciado!");
});
Prueba el servidor
Ejecuta el servidor utilizando el siguiente comando en la terminal:
node app.jsAbre una nueva terminal y verifica que la terminal sea correcta con el siguiente comando:
curl http://localhost:8080/news
## Salida:
## [{"channelId":"5572a108b3cdc86cf39001cd","name":"National Focus"},{"channelId":"5572a108b3cdc86cf39001ce","name":"International Focus"}]
curl http://localhost:8080
## Salida:
## 404
¡Felicidades! Has creado con éxito una API de noticias utilizando Node.js.
Resumen
¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



