Pequeño Back-End realizado con NodeJS y Express, que maneja verbos como (GET, POST, PUT, DELETE)
Pasos:
- Importamos dependencias a usar
- Declaramos puerto e instancia que escuchará las solicitudes que vamos a realizar
- Definimos petición de prueba
- Como no tenemos un SGBD lo que haremos será manejar datos planamente (array de usuarios)
- Dentro especificamos que la respuesta del servidor será devuelta en formato JSON
- Capturamos el parametro que ciene desde la URL donde hacemos la petición (request.params.id), almacenamos en variable parseada, comparamos y recorremos con el método '.find()' si el 'userId' que se capturó como parámetro es igual al user del array que estamos recorriendo es decir el objeto. Finalmente devolvemos la respuesta en formato JSON
- Declaramos un nuevo objeto ('newUser') el cuál almacenará las variables que vengan de la solicitud hecha (del body) y simulando un efecto autoincrement tomamos el arreglo de usuarios y usando .length + 1 decimos que aumente una unidad al id del usuario anterior. Finalmente, añadimos este nuevo usuario al array ya definido con el método '.push()'
- Capturamos el parámetro 'id' de la solicitud ('request.params.id'), posteriormente usando el método '.findIndex()' nos devolverá el primer elemento encontrado y especificado en los parámetros de la solicitud (es decir del ID que puse en la URL si es 1, 2, 3, etc...), procedemos a editar a traves de un nuevo objeto los datos anteriores almacenados en la solicitud, luego agregamos una validación, en donde si el índice de usuario no existe devuelva un código de estado 404 (Not Found) y un mensaje personalizado, finalmente devuelve el array con los datos modificados.
- Capturamos el parámetro 'id' de la solicitud y almacenamos su valor en una variable, recorremos y comparamos si el valor ingresado en la solicitud es el de la petición, luego validamos y devolvemos un código de estado 404 (Not Found) usando el metodo '.splice()' nos encargamos de "borrar" ese usuario del arreglo.
Se encuentran en el archivo 'request.http'

By: @hardynsnet