socket route res node method example delete another node.js mongodb angularjs express

node.js - route - ¿Qué hace Express.js en la pila MEAN?



res.send express (3)

Recientemente he ingresado a AngularJS y me encanta. Para un próximo proyecto, estoy buscando usar la pila MEAN (MongoDB, Express, Angular, Node). Estoy bastante familiarizado con Angular y tengo una comprensión modesta de los propósitos de MongoDB y Node en la pila. Sin embargo, realmente no entiendo cuál es el propósito de Express.js. ¿Es esencial para la pila MEAN? ¿Con qué lo compararías en una aplicación tradicional MySQL, PHP, javascript? ¿Qué hace que los otros tres componentes no puedan hacer?

Además, si alguien quiere dar su opinión sobre cómo las cuatro partes de la pila funcionan juntas, sería genial.


Express maneja cosas como cookies, analizando el cuerpo de la solicitud, formando las rutas de respuesta y manejo.

También es la parte de la aplicación que escucha un socket para manejar las solicitudes entrantes.

Un ejemplo simple de express github

var express = require(''express''); var app = express(); app.get(''/'', function(req, res){ res.send(''Hello World''); }); app.listen(3000);

Muestra la creación del servidor express, creando una ruta app.get(''/''... y abriendo el puerto para escuchar las solicitudes http entrantes.


Puede pensar en Express como un cinturón de herramientas para crear aplicaciones web con Node.js. Proporciona funciones para casi todo lo que necesita hacer para construir un servidor web. Si tuviera que escribir la misma funcionalidad con vanda Node.js, tendría que escribir mucho más código. Aquí hay un par de ejemplos de lo que Express hace:

  • Las rutas REST se simplifican con cosas como
    • app.get(''/user/:id'', function(req, res){ /* req.params(''id'') is avail */ });
  • Un sistema de middleware que le permite conectar diferentes funciones sincrónicas que hacen cosas diferentes con una solicitud o respuesta, es decir. autenticación o adición de propiedades
    • app.use(function(req,res,next){ req.timestamp = new Date(); next(); });
  • Funciones para analizar el cuerpo de las solicitudes POST
  • Herramientas de prevención de creación de scripts en sitios cruzados
  • Manejo automático del encabezado HTTP
    • app.get(''/'', function(req,res){ res.json({object: ''something''}); });

En términos generales, Sinatra es para Ruby como Express es para Node.js. Sé que no es un ejemplo de PHP, pero no sé mucho sobre frameworks PHP.


  • MongoDB = base de datos
  • Express.js = marco web de servicios de fondo
  • Angular = marco frontal
  • Nodo = plataforma de fondo / marco web

Básicamente, lo que Express hace es que le permite crear fácilmente aplicaciones web al proporcionar una interfaz ligeramente más simple para crear sus puntos finales de solicitud, manejo de cookies, etc. que el Nodo vainilla. Podría dejarlo fuera de la ecuación, pero luego tendría que trabajar mucho más para mejorar su aplicación web. El nodo en sí mismo puede hacer todo lo que está haciendo express (express se implementa con el nodo), pero express solo lo envuelve en un paquete más agradable.

Yo compararía Express con algún framework web PHP en la pila que describa, algo así como slim .