—Bueno, me voy… Elena.
—Vete.
—Me voy, Elena, ¿me oyes?
—Vete, Javier, vete.
Solo cuando la puerta se cerró tras Javier, Elena dejó escapar las lágrimas. Sentada en el viejo sillón que heredó de su abuela, con las piernas recogidas, lloró en silencio, como cuando era niña y temía que alguien la oyera. Lloró hasta que le dio hipo, como una niña pequeña.
¿Cómo seguir sin Javier? ¿Sin el hombre con quien había compartido todos estos años?
Se levantó para preparar la cena, pero se detuvo. ¿Para qué? Javier ya no estaba. ¿Qué sentido tenía? Cayó de nuevo en el sillón, y las lágrimas brotaron con fuerza.
Pero entonces recordó a los niños. Pronto volvería su hija Lucía, universitaria y hambrienta después de clases. Luego llegaría su hijo Álvaro, que se quedaría tarde en el entrenamiento. Ellos sí tenían hambre, había que darles de comer. Elena se obligó a levantarse, se secó las lágrimas y fue a la cocina.
Al recordar los años con Javier, volvió a llorar. ¿Cómo vivir sin él?
Por la noche, los niños entraron ruidosamente en casa, empujándose y bromeando entre ellos. Pero pronto notaron la ausencia de su padre.
—Mamá, ¿dónde está papá? ¿De viaje? —preguntó Lucía.
—Sí, ¿dónde está? —añadió Álvaro.
Elena no pudo contenerse. Las lágrimas brotaron de nuevo, se desplomó en una silla y lloró desconsoladamente.
—Mamá, ¿qué ha pasado? ¿Está en el hospital? —se alarmó Lucía.
—No… se ha ido… —logró decir Elena—. Para siempre… con otra mujer.
—¿Qué? —exclamaron los niños al unísono—. Mamá, ¿es una broma?
Pero no lo era.
A Álvaro le tembló el labio. Aunque era deportista, con trece años seguía siendo un niño. Miró alternativamente a su madre y a su hermana, al borde del llanto.
—Vale —Lucía se frotó la frente con determinación—. Álvaro, lávate y haz los deberes. Mamá, deja de llorar. Hay que pensar qué hacer.
Lucía era práctica, rápida, decidida. Álvaro, sin protestar, obedeció.
Más tarde, Lucía entró en la habitación de su hermano.
—¿Estás llorando?
Álvaro negó con la cabeza, sin levantar la vista.
Lucía lo abrazó y le revolvió el pelo.
—Saldremos adelante, Álvaro. ¿Me oyes? Somos una familia, y él está solo. Lo tiene peor.
—¿Que lo sienta? —gritó Álvaro entre lágrimas.
—¿Sentirlo? Buena idea. Seremos felices, los más felices. Y él entenderá el error que cometió.
Después de calmar a su hermano y a su madre, Lucía fue al baño y allí, al fin, dejó caer las lágrimas. ¿Cómo? ¿Cómo su padre, el mejor del mundo, pudo hacer esto? No era guapo, solo un hombre con unos kilos de más, que su madre había engordado con sus empanadas. Su sentido del humor era regular, solo ella se reía de sus chistes. Conducía un coche viejo que él mismo arreglaba. Trabajaba como jefe de un pequeño departamento en una fábrica, con un sueldo modesto.
Pero en su familia siempre habían sido felices. Lucía presumía ante sus amigas de que su padre era el único fiel. Y al final…
Las lágrimas corrieron, y Lucía las limpió con agua fría.
La vida siguió, tranquila, pero ya sin su padre. La palabra “papá” desapareció de su vocabulario. Ahora decían “él” o “tu padre”, y cada vez menos.
Un día, Lucía escuchó tras ella:
—Lu, Lucía, ¡espera!
Se dio la vuelta. Su padre corría hacia ella, rid
Trabajar con feeds en un sistema de gestión de contenidos (CMS) con Node.js y Express puede ser una forma eficiente de distribuir contenido de manera estructurada y fácilmente consumible por otras aplicaciones. Aquí te explico paso a paso cómo implementar esta funcionalidad:
### 1. **Configuración del Proyecto**
Suponiendo que ya tienes un proyecto Node.js con Express configurado, necesitarás instalar algunas dependencias adicionales para generar feeds RSS o Atom. Un paquete popular para esto es `rss`.
“`bash
npm install rss
“`
### 2. **Estructura del Modelo de Contenido**
Asegúrate de que tu CMS tenga una estructura para almacenar y recuperar contenido. Por ejemplo, podrías tener un modelo `Post` para artículos o publicaciones de blog.
“`javascript
const mongoose = require(‘mongoose’);
const postSchema = new mongoose.Schema({
title: String,
content: String,
author: String,
createdAt: { type: Date, default: Date.now },
updatedAt: { type: Date, default: Date.now }
});
module.exports = mongoose.model(‘Post’, postSchema);
“`
### 3. **Generación del Feed**
Crea una función para generar el feed. Esta función recuperará los contenidos y los convertirá al formato RSS o Atom.
“`javascript
const RSS = require(‘rss’);
async function generateRSSFeed() {
const feed = new RSS({
title: ‘Mi CMS RSS Feed’,
description: ‘Últimos artículos de mi CMS’,
feed_url: ‘http://ejemplo.com/rss’,
site_url: ‘http://ejemplo.com’,
language: ‘es’,
pubDate: new Date()
});
const posts = await Post.find().sort({ createdAt: -1 }).limit(10);
posts.forEach(post => {
feed.item({
title: post.title,
description: post.content,
url: `http://ejemplo.com/posts/${post._id}`,
author: post.author,
date: post.createdAt
});
});
return feed.xml();
}
“`
### 4. **Creación de la Ruta del Feed**
En tu archivo de rutas, añade un endpoint para servir el feed.
“`javascript
const express = require(‘express’);
const router = express.Router();
router.get(‘/rss’, async (req, res) => {
try {
const rss = await generateRSSFeed();
res.header(‘Content-Type’, ‘application/rss+xml’);
res.send(rss);
} catch (error) {
res.status(500).send(‘Error al generar el feed’);
}
});
module.exports = router;
“`
### 5. **Integración con el CMS**
Asegúrate de que tu CMS esté actualizando el feed cada vez que se añada nuevo contenido. Esto puede ser automático, llamando a `generateRSSFeed` tras guardar un nuevo post.
### 6. **Pruebas**
– Verifica que la ruta `/rss` devuelve un XML válido.
– Asegúrate de que el contenido mostrado en el feed sea el más reciente.
– Valida el feed con validadores de RSS online para confirmar que cumple con los estándares.
### 7. **Optimización**
– **Caching:** Para evitar generar el feed en cada petición, puedes cachearlo y regenerarlo solo cuando se actualice el contenido.
– **Frecuencia de Actualización:** Configura cuán frecuentemente se debe regenerar el feed.
### 8. **Documentación**
Documenta la URL del feed y cómo los usuarios pueden suscribirse a él desde sus lectores RSS favoritos.
Con estos pasos, habrás implementado un sistema de feeds en tu CMS que permite a los usuarios mantenerse actualizados con el contenido más reciente de manera eficiente. Esto no solo mejora la accesibilidad de tu contenido sino que también favorece su distribución en diferentes plataformas.