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.