Desde: 30-Mar-2023
Hasta 29-Ago-2023
Modo

Obtener datos de la base de datos(7.ª parte)

Omar Giancarlo

Descripción Corta:

Aprende a obtener datos de la base de datos utilizando el método query() y devuelve los resultados en formato JSON

Anterior Siguiente

En esta sección vamos a obtener todos los empleados que tenemos guardado en nuestra base de datos. Para esto, es muy simple, porque ya tenemos la función que nos permite hacer una consulta. 

Si te perdiste la parte 6 de esta serie búscalo aquí

Si vamos a nuestro archivo employees.controllers.js vemos que la función que nos permite obtener los empleados solamente tiene un texto que dice 'obteniendo empleados'.

const getEmployees = (req, res) => res.send( 'obteniendo empleados' )

Obteniendo todos los empleados

Ahora lo que vamos a hacer es cambiar ese texto por una consulta real a nuestra base de datos. Para hacer esto vamos a remover la parte de la función y le vamos a agregar unas llaves

const getEmployees = (req, res) => {
}

Ahora lo que vamos a hacer es llamar al método query() que viene con pool, que es la conexión a nuestra base de datos y lo vamos a colocar dentro de las llaves.

Recordamos para obtener datos de una base de datos o cualquier operación en la base de datos, es una operación asíncrona, por lo tanto, tenemos que utilizar async await.

const getEmployees = async (req, res) => {
  try {
    const rows = await query('SELECT * FROM employee')
    res.json(rows)
  } catch (error) {
    console.error(error)
    res.status(500).send('Error al obtener la información')
  }
}

Dentro de la función estamos colocando un bloque try catch y guardando en rows los datos que se obtienen de la consulta. El método query() selecciona todos los elementos de la tabla employees y lo almacene en rows.

Luego envíe esa respuesta al navegador a través de la función json().

Si vemos la constante rows vemos que no le colocamos [ ] porque ya es un arreglo, entonces no es necesario colocarle [ ]

Ahora sí, guardamos, podemos ir a la consola y ver que no tenemos ningún error. Vamos a ir a la extensión Thunder client y del menú desplegable, vamos a seleccionar GET para hacer nuestra consulta a través de la ruta employees. La respuesta que nos va a dar a esta consulta va a ser un arreglo con múltiples objetos. Este arreglo también lo podemos visualizar desde el navegador.

Cambiando la ruta employees

Hasta este momento estábamos utilizando la ruta /employees, pero un mejor nombre sería, /api/employees entonces para poder cambiar todas las rutas de employees tendríamos que ir a nuestro index.js y justo antes donde se utilicen las rutas de employees vamos a escribir lo siguiente:

app.use('/api', employeesRoutes)

Lo que va a hacer esta modificación es que antes del /employees va a colocar api. Ahora vamos a comprobar yendo al navegador y vamos a escribir la ruta api/employees y vemos que estamos obteniendo los mismos datos y todo sigue funcionando igual.

Lo mismo podemos hacer con el resto de las rutas, vamos a probar con la ruta que permite crear un empleado api/employee, para esto vamos a ir a nuestra extensión Thunder client y vamos a modificar la ruta en POST que es la ruta que nos permite crear un nuevo usuario, en este caso vamos a crear un usuario nuevo y vemos que vamos a obtener lo mismo.

Consulta de un empleado específico por ID

Ahora qué pasa si nosotros queremos en vez de solicitar todos los empleados queremos solicitar un empleado en específico, para hacer esto lo primero que tenemos que hacer es extraer es el id de ese empleado.

Ir a la parte 8

Anterior Siguiente