---
title: MEAN (Mongo-Express-Angular-Node) Desarrollo Full Stack JavaScript (Parte I)
url: https://jarroba.com/mean-mongo-express-angular-node-desarrollo-full-stack-javascript-parte-i/
author: Richard [Admin Jarroba]
date: 2014-07-09
modified: 2026-10-21
language: es
license: CC BY-NC-SA 3.0 (https://creativecommons.org/licenses/by-nc-sa/3.0/) — attribution: "MEAN (Mongo-Express-Angular-Node) Desarrollo Full Stack JavaScript (Parte I)", Richard [Admin Jarroba], jarroba.com
categories: Tecnologias Web
tags: angular, express, MEAN, MEANJS, mongo, mongodb, node, nodejs
series: MEAN: Mongo, Express, Angular y Node (part 1 of 2)
---

# MEAN (Mongo-Express-Angular-Node) Desarrollo Full Stack JavaScript (Parte I)

> Qué es el stack MEAN y qué papel juega cada pieza: MongoDB, Express, AngularJS y Node.js, y cómo fluyen los datos entre frontend, API REST y base de datos.

En los ú[![MEAN_jarroba](https://jarroba.com/wp-content/uploads/2014/07/MEAN_jarroba.png)](https://jarroba.com/wp-content/uploads/2014/07/MEAN_jarroba.png)ltimos años se han puesto muy de moda tecnologías como MongoDB, Node.js y AngularJS, lo que ha hecho que haya surgido una nueva corriente para la construcción de aplicaciones web rápidas, robustas y mantenibles usando las tecnologías de MongoDB, Express, AngularJS y Node.js. El uso de estas 4 tecnologías juntas conforman el llamado "stack MEAN" (MEAN = **M**ongo-**E**xpress-**A**ngular-**N**ode) que tienen como nexo común la utilización del mismo lenguaje de programación (JavaScript), lo cual supone una gran ventaja para los que sepan Javascript, que por otro lado no es un lenguaje muy complejo. Por tanto con estas 4 tecnologías tenemos todo lo necesario para desarrollar aplicaciones web: Frontend, Backend y Base de Datos.

 

 

### # MongoDB

 

[![MEAN_mongodb](https://jarroba.com/wp-content/uploads/2014/07/MEAN_mongodb.png)](https://jarroba.com/wp-content/uploads/2014/07/MEAN_mongodb.png)MongoDB es un sistema de base de datos documental no relacional de código abierto, conocido también (aunque mal dicho en mi opinión) como base de datos NoSQL. Este sistema de base de datos, guarda los datos en documentos en formato JSON (en realidad los guarda en formato BSON), lo que hace que sea un formato muy manejable y entendible para trabajar con él, y las operaciones (o "consultas") sobre estos documentos se realizan en JavaScript. De MongoDB cabe destacar su flexibilidad y escalabilidad, lo que ayuda al desarrollo ágil de proyectos software. Son muchos los lenguajes que pueden trabajar con MongoDB (Java, PHP, Python, etc.) y por supuesto NodeJs es uno de ellos.

 

### # Express

 

[![MEAN_express](https://jarroba.com/wp-content/uploads/2014/07/MEAN_express.png)](https://jarroba.com/wp-content/uploads/2014/07/MEAN_express.png)Express es un framework realizado en NodeJs muy ligero y flexible que proporciona un conjunto muy robusto de facilidades para crear fácilmente servidores web y recibir peticiones HTTP; por tanto, permite desarrollar API REST de forma muy rápida.

 

 

### # AngularJS

 

[![MEAN_angular](https://jarroba.com/wp-content/uploads/2014/07/MEAN_angular.png)](https://jarroba.com/wp-content/uploads/2014/07/MEAN_angular.png)AngularJS es un framework para Frontend desarrollado por Google (vamos que va a tener éxito si o si) que sigue el patrón MVC (Model-Vista-Controlador), aunque la propia gente de Google dice que sigue el patrón [MVW](https://plus.google.com/+AngularJS/posts/aZNVhj355G2) (Model-View-Whatever (whatever works for you)). AngularJS permite crear lo que se llama Single-Page-Applications, que son aplicaciones web que no necesitan recargar la página (vamos que con AngularJS «te regalan el AJAX» aunque esto que digo no es 100% correcto). Para terminar decir que AngularJS es un framework muy potente y que facilita muchísimo la labor de los desarrolladores de Frontend. Darle caña a este framework ya que es de los que más me han sorprendido últimamente.

 

### # NodeJS

 

[![MEAN_nodejs](https://jarroba.com/wp-content/uploads/2014/07/MEAN_nodejs.jpg)](https://jarroba.com/wp-content/uploads/2014/07/MEAN_nodejs.jpg)NodeJS (creado en el año 2009) es un entorno de programación (en Javascript) en la capa del servidor basado en el motor V8 de JavaScript, orientado a eventos no bloqueantes, lo que lo hace muy rápido y permite crear programas de red altamente escalables (servidores web) y emplear el «tiempo real». En los últimos años esta tecnología está teniendo mucho auge y ha hecho que exista una comunidad de desarrolladores bastante amplia y potente, por lo que tiene pinta que esta tecnología tendrá cierto éxito a corto-medio plazo.

 

Dado el éxito que está teniendo MEAN para el desarrollo de aplicaciones web, están surgiendo proyectos que proporcionan esqueletos de aplicación MEAN tales como [MEAN.IO](http://www.mean.io/#!/) o [MEANJS.ORG](http://meanjs.org/).

 

### ¿Cómo funciona MEAN?

 

Como ya se ha dicho, con el uso de estas 4 tecnologías tenemos todo lo necesario (Frontend, Backend y Base de Datos) para desarrollar una aplicación web, pero os preguntaréis cuál es la finalidad y la funcionalidad de cada una de estas tecnologías. En la siguiente imagen podéis ver cuál es el flujo de las aplicaciones web realizadas con MEAN.

 

[![MEAN_arquitectura_jarroba](https://jarroba.com/wp-content/uploads/2014/07/MEAN_arquitectura_jarroba.png)](https://jarroba.com/wp-content/uploads/2014/07/MEAN_arquitectura_jarroba.png)

 

Como se observa en la imagen, el Frontend lo desarrollamos con AngularJS, que es el encargado de hacer llamadas al API REST (Post, Put, Get y Delete) desarrollado en NodeJS que utiliza el framework de Express. El API podrá hacer un CRUD (Create-Read-Update-Delete) a la base de datos MongoDB y cuando el API tenga los datos que se le han pedido en la llamada los devolverá a AngularJS (es decir al Frontend) en formato JSON y este los mostrará en pantalla sin necesidad de recargar la página ya que AngularJS mantiene el modelo de datos actualizado sin necesidad de recargar la página.

 

Como vemos esta es la arquitectura y el flujo de datos que hay en las aplicaciones desarrolladas con estas tecnologías. Dependiendo del proyecto podremos meter más lógica en la parte de Frontend o en la de Backend, pero eso ya son cosas que hay que valorar según las características de los proyectos. Por último comentar una cosa que me ha sorprendido gratamente de AngularJS y es que desde el propio HTML nos permite validar formularios con las etiquetas que nos proporciona, por tanto no será necesario validar los formularios en JavaScript como antaño.

## Serie: MEAN: Mongo, Express, Angular y Node

1. [MEAN (Mongo-Express-Angular-Node) Desarrollo Full Stack JavaScript (Parte I)](https://jarroba.com/mean-mongo-express-angular-node-desarrollo-full-stack-javascript-parte-i.md)
2. [MEAN (Mongo-Express-Angular-Node) Ejemplo de Aplicación Web (Parte II)](https://jarroba.com/mean-mongo-express-angular-node-ejemplo-de-aplicacion-web-parte-ii.md)

