Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Implementando la ruta "ACTUALIZAR PUBLICACIÓN POR ID" | Developing REST API
Node.js Express: API & CLI Apps

Implementando la ruta "ACTUALIZAR PUBLICACIÓN POR ID"Implementando la ruta "ACTUALIZAR PUBLICACIÓN POR ID"

Investigaremos como actualizar un post existente usando la ruta "UPDATE POST BY ID" dentro del archivo postsRoutes.js. Esta ruta maneja la actualización de un post basado en su ID único.

Definición de la ruta

El siguiente código define la ruta "UPDATE POST BY ID" usando router.put():

  • Esta ruta está configurada para manejar peticiones HTTP PUT, específicamente para actualizar posts.
  • Incluye un parámetro :id en la ruta para identificar la entrada a actualizar.
  • El middleware validatePostData se añade para asegurar la validación de los datos antes de proceder. La lógica del middleware validatePostData sigue siendo la misma que en el paso anterior.

Obtención de datos de la solicitud

Aquí, extraemos los datos necesarios de la petición, incluyendo el ID del post y el contenido actualizado del post:

  • El ID de la entrada se extrae de los parámetros de la petición, quedando disponible para su posterior procesamiento. El parámetro :id de la URL de la ruta se captura utilizando req.params.id.
  • El username, postTitle, y postContent se extraen del cuerpo de la petición.

Actualizar la entrada en la base de datos

Actualizar una entrada existente implica varios pasos, como se indica a continuación:

  • Leemos los datos existentes en el fichero JSON utilizando la función asíncrona readData, como se ha explicado anteriormente.
  • La variable postIndex almacena el índice del post a actualizar en el array data comparando los IDs de los posts.
  • Si no se encuentra la entrada (es decir, postIndex === -1), se devuelve al cliente una respuesta 404 (Not Found) con un mensaje de error.
  • Para actualizar los datos de la entrada, combinamos los datos existentes (...data[postIndex]) con los datos actualizados (...updatedData). Esto garantiza que sólo se actualicen los campos especificados y que se conserven los datos existentes.
  • Finalmente, el array data actualizado se escribe de nuevo en el archivo JSON para guardar los cambios realizados en la entrada.

Envío de una respuesta

Cuando la actualización de la entrada se realiza correctamente, se envía una respuesta JSON al cliente. La respuesta incluye un código de estado 200 (OK), indicando una actualización exitosa y los datos actualizados de la entrada.

Tratamiento de errores

Envolvemos el código de la ruta en un bloque try-catch para gestionar posibles errores durante la recuperación de datos o el procesamiento de la solicitud. Cualquier error que ocurra se registra en la consola para propósitos de depuración:

Código completo del fichero postsRoutes.js en este paso

¿Todo estuvo claro?

Sección 4. Capítulo 8
course content

Contenido del Curso

Node.js Express: API & CLI Apps

Implementando la ruta "ACTUALIZAR PUBLICACIÓN POR ID"Implementando la ruta "ACTUALIZAR PUBLICACIÓN POR ID"

Investigaremos como actualizar un post existente usando la ruta "UPDATE POST BY ID" dentro del archivo postsRoutes.js. Esta ruta maneja la actualización de un post basado en su ID único.

Definición de la ruta

El siguiente código define la ruta "UPDATE POST BY ID" usando router.put():

  • Esta ruta está configurada para manejar peticiones HTTP PUT, específicamente para actualizar posts.
  • Incluye un parámetro :id en la ruta para identificar la entrada a actualizar.
  • El middleware validatePostData se añade para asegurar la validación de los datos antes de proceder. La lógica del middleware validatePostData sigue siendo la misma que en el paso anterior.

Obtención de datos de la solicitud

Aquí, extraemos los datos necesarios de la petición, incluyendo el ID del post y el contenido actualizado del post:

  • El ID de la entrada se extrae de los parámetros de la petición, quedando disponible para su posterior procesamiento. El parámetro :id de la URL de la ruta se captura utilizando req.params.id.
  • El username, postTitle, y postContent se extraen del cuerpo de la petición.

Actualizar la entrada en la base de datos

Actualizar una entrada existente implica varios pasos, como se indica a continuación:

  • Leemos los datos existentes en el fichero JSON utilizando la función asíncrona readData, como se ha explicado anteriormente.
  • La variable postIndex almacena el índice del post a actualizar en el array data comparando los IDs de los posts.
  • Si no se encuentra la entrada (es decir, postIndex === -1), se devuelve al cliente una respuesta 404 (Not Found) con un mensaje de error.
  • Para actualizar los datos de la entrada, combinamos los datos existentes (...data[postIndex]) con los datos actualizados (...updatedData). Esto garantiza que sólo se actualicen los campos especificados y que se conserven los datos existentes.
  • Finalmente, el array data actualizado se escribe de nuevo en el archivo JSON para guardar los cambios realizados en la entrada.

Envío de una respuesta

Cuando la actualización de la entrada se realiza correctamente, se envía una respuesta JSON al cliente. La respuesta incluye un código de estado 200 (OK), indicando una actualización exitosa y los datos actualizados de la entrada.

Tratamiento de errores

Envolvemos el código de la ruta en un bloque try-catch para gestionar posibles errores durante la recuperación de datos o el procesamiento de la solicitud. Cualquier error que ocurra se registra en la consola para propósitos de depuración:

Código completo del fichero postsRoutes.js en este paso

¿Todo estuvo claro?

Sección 4. Capítulo 8
some-alt