Gestión de Seguidores y Publicaciones en Redes Sociales
Clase 17 de 29 • Curso de Node.js: Autenticación, Microservicios y Redis
Resumen
¿Cómo crear una función para ver los seguidores de un usuario?
Una de las funciones más útiles que podemos implementar en una aplicación es la de mostrar los seguidores de un usuario. Para conseguirlo, debemos crear una consulta específica que nos permita extraer esa información de nuestra base de datos. Aquí te explicamos cómo lograrlo.
Primero, debes definir una función que interactúe con tu API para obtener los seguidores del usuario. Esto se hace mediante una consulta SQL que relacione las tablas de usuarios y seguidores adecuadamente. Es crucial utilizar el concepto de JOIN
para relacionar las entidades y asegurarte de que la consulta esté optimizada para un rendimiento eficiente.
function getFollowers(userId) {
const query = `
SELECT follower_id
FROM followers
INNER JOIN users ON followers.follower_id = users.id
WHERE followers.followed_id = ?
`;
// Ejecutamos la consulta con el parámetro del usuario
db.query(query, [userId], (error, results) => {
if (error) {
throw error;
}
return results;
});
}
Con esta función, puedes solicitar los seguidores de un usuario específico y, al ejecutarla, obtendrás una lista de los seguidores de forma clara y precisa.
¿Cómo crear una nueva entidad para los posts?
Para enriquecer las funcionalidades de nuestra aplicación, resulta esencial añadir nuevas entidades que permitan a los usuarios crear contenido, como por ejemplo publicar posts. A continuación, te guiaremos en el proceso de creación de una nueva entidad Post
.
-
Crea la Carpeta para 'Posts': Organiza tu proyecto añadiendo una nueva carpeta denominada
posts
, en donde incluirás todos los archivos relacionados con esta funcionalidad. -
Define Archivos Requeridos: Dentro de
posts
, debes crear, al menos, los siguientes archivos:post.model.js
: Define aquí el esquema de cómo se almacenarán los posts en la base de datos.post.controller.js
: Aquí se gestionarán las funciones esenciales (crear, leer, actualizar, eliminar) para los posts.post.routes.js
: Especifica las rutas de la API que permitirán la interacción con los posts.
-
Modifica el Índice de la API: Asegúrate de importar el componente de
Post
en el índice principal de tu API para que todas las rutas y controles queden correctamente enlazados.
app.use('/api/posts', require('./posts/post.routes'));
Al seguir estos pasos, estarás preparado para permitir que los usuarios de tu aplicación puedan publicar sus propios contenidos en su muro.
¿Qué cambios realizar en la base de datos para soportar la nueva entidad?
Incorporar una nueva entidad implica también modificar la estructura de tu base de datos para soportar esta funcionalidad adecuadamente. Aquí te indicamos cómo hacerlo.
- Crear la Tabla 'Posts': Debes crear una tabla en tu base de datos que almacene los datos relacionados con cada post. La estructura básica podría ser la siguiente:
CREATE TABLE posts (
id VARCHAR(32) PRIMARY KEY,
title TEXT NOT NULL,
body TEXT NOT NULL,
author_id VARCHAR(32),
FOREIGN KEY (author_id) REFERENCES users(id)
);
-
Definir Atributos Clave:
id
: Identificador único para cada post.title
: Texto breve que actúa como título del post.body
: Contenido completo del post.author_id
: Referencia al usuario que creó el post.
-
Ajustar la Relación con Usuarios: Asegúrate de que la tabla 'posts' esté bien referenciada con la tabla 'usuarios' para vincular cada post a su autor correcto.
Con estos cambios, tu base de datos estará lista para manejar eficazmente las operaciones de creación, lectura, actualización y eliminación de posts, proporcionando una experiencia fluida para los usuarios.