Tutorial Paso a Paso para Crear una API REST con Express y MongoDB en Node.js

Tutorial Paso a Paso para Crear una API REST con Express y MongoDB en Node.js

Tutorial Completo para Crear una API RESTful con Express.js y MongoDB en Node.js

En este tutorial aprenderás, paso a paso, cómo crear una API RESTful utilizando Express.js y MongoDB en Node.js. Está dirigido a desarrolladores principiantes e intermedios interesados en el desarrollo backend con JavaScript. Cubriremos desde la configuración inicial, conexión a la base de datos, definición de esquemas con Mongoose, hasta la implementación de rutas CRUD, manejo de errores y pruebas básicas con Postman.

¡Vamos a programar!


Índice

  1. Configuración del entorno
  2. Conexión a MongoDB con Mongoose
  3. Definición de esquemas con Mongoose
  4. Implementación de rutas CRUD en Express.js
  5. Manejo de errores y buenas prácticas
  6. Pruebas básicas con Postman
  7. Conclusión y próximos pasos

Configuración del entorno

Primero, necesitamos preparar nuestro ambiente para el desarrollo.

Requisitos previos

  • Node.js instalado (preferiblemente la versión LTS).
  • MongoDB instalado localmente o una cuenta en MongoDB Atlas.
  • Editor de código (e.g. Visual Studio Code).
  • Postman instalado para probar la API.

Creando el proyecto

  1. Crea una carpeta para tu proyecto y navega a ella:

  1. Inicializa un proyecto Node.js:

  1. Instala las dependencias principales:

  • express para crear el servidor API.
  • mongoose para interactuar con MongoDB.
  • dotenv para manejar variables de entorno.
  1. (Opcional) Instala nodemon para reinicio automático durante el desarrollo:

Agrega en package.json un script para ejecutar con nodemon:

¡Ya tenemos nuestro entorno listo!


Conexión a MongoDB con Mongoose

Es importante conectar nuestra aplicación a la base de datos.

Crear archivo .env

En la raíz crea un archivo .env para almacenar la cadena de conexión:

Si usas MongoDB Atlas pega la URI proporcionada allí.

Configura la conexión

Crea el archivo index.js y agrega:

Para probar que funciona, ejecuta:

y abre http://localhost:3000 en tu navegador o Postman.


Definición de esquemas con Mongoose

Con MongoDB no se requiere esquema, pero con Mongoose definimos estructuras para uniformidad.

Crear un esquema para un recurso ejemplo: Tarea

Vamos a crear una colección de “tareas” para una to-do list.

Crea una carpeta models y dentro Task.js:

Explicación:

  • title: título obligatorio y sin espacios innecesarios.
  • description: opcional.
  • completed: estado de la tarea, por defecto falso.
  • createdAt: fecha auto asignada.

Implementación de rutas CRUD en Express.js

Vamos a permitir crear, obtener, actualizar y eliminar tareas.

Crear una carpeta routes y un archivo tasks.js

Integra las rutas en index.js

Ahora tendrás un API para gestionar tareas con:

| Método | URL | Función |
|——–|——————-|——————-|
| POST | /api/tasks | Crear tarea |
| GET | /api/tasks | Listar tareas |
| GET | /api/tasks/:id | Obtener tarea |
| PUT | /api/tasks/:id | Actualizar tarea |
| DELETE | /api/tasks/:id | Eliminar tarea |


Manejo de errores y buenas prácticas

Un buen backend debe manejar errores correctamente y mantener código limpio.

Buenas prácticas recomendadas:

  • Usa try/catch en funciones async para capturar errores.
  • Devuelve códigos HTTP adecuados (201 para creación, 404 para no encontrado, etc).
  • Valida los datos recibidos (Mongoose ayuda con eso).
  • No expongas errores internos exactos al cliente; da mensajes claros y seguros.
  • Usa variables de entorno para datos sensibles (como la URI de MongoDB).
  • Organiza el proyecto en carpetas claras (models, routes, controllers si creas separación).

Ejemplo de middleware para manejo global de errores (opcional):

Puedes agregarlo al final de tus configuraciones en index.js.


Pruebas básicas con Postman

Postman es una herramienta ideal para probar nuestra API RESTful.

Cómo probar:

  1. Crear tarea (POST)
  • URL: http://localhost:3000/api/tasks
  • Body (raw JSON):
    json
    {
    "title": "Aprender Express",
    "description": "Seguir tutorial paso a paso"
    }
  • Enviar y verificar que se cree correctamente (código 201).
  1. Listar tareas (GET)
  • URL: http://localhost:3000/api/tasks
  • Debe mostrar un array con las tareas.
  1. Obtener tarea por ID (GET)
  • URL: http://localhost:3000/api/tasks/{id}
  • Reemplaza {id} con el ID de alguna tarea creada.
  1. Actualizar tarea (PUT)
  • URL: http://localhost:3000/api/tasks/{id}
  • Body (raw JSON):
    json
    {
    "completed": true
    }
  • Verifica que la tarea se actualice.
  1. Eliminar tarea (DELETE)
  • URL: http://localhost:3000/api/tasks/{id}
  • Debe responder con mensaje de tarea eliminada.

Conclusión y próximos pasos

¡Felicidades! Has construido una API RESTful básica pero funcional usando Express.js y MongoDB en Node.js.

Resumen

  • Configuraste tu entorno con Node, Express, Mongoose y dotenv.
  • Conectaste tu app a MongoDB con Mongoose.
  • Definiste esquemas para tus datos usando modelos.
  • Implementaste rutas CRUD con manejo de errores.
  • Probaste la API usando Postman.

Qué puedes hacer después

  • Añadir autenticación con JWT para proteger rutas.
  • Usar validaciones más robustas (e.g., con joi o express-validator).
  • Implementar paginación y filtros en endpoints.
  • Modulariza tu código separando controladores y servicios.
  • Desplegar tu API en un servidor (Heroku, Vercel, etc).

Si te gustó este tutorial Express.js y quieres aprender más sobre desarrollo backend y programación JavaScript, ¡síguenos para más contenido y comparte este artículo con tus colegas!


Buenas prácticas para desarrollo backend con JavaScript

  • Mantén tu código limpio y modular.
  • Documenta tu API, considera usar Swagger.
  • Versiona tu API para evitar rupturas en clientes.
  • Maneja correctamente las variables sensibles.
  • Realiza pruebas unitarias e integradas.
  • Optimiza consultas a la base de datos para rendimiento.

Gracias por leer, ¡manos a la obra y feliz programación!