¿Por qué querría uno usar Express en lugar de AngularJS?

Entiendo que Express reside en el servidor y Angular reside en el cliente pero, que yo sepa, Angular puede hacer todo lo que Express puede hacer, que es

  • enrutamiento
  • interactuando con la base de datos

Parece que tal vez se necesita Express para que una aplicación AngularJS sea servida por Node.js pero no estoy seguro.

¿Cuáles son los beneficios de agregar Express a una aplicación de AngularJS?

Hay cosas que deben hacerse desde el lado del servidor (es decir, Express, no Angular), especialmente la validación de entrada del usuario: Angular, como es el lado del cliente, puede ser manipulado.

Además, si alguna vez desea ofrecer un tipo de acceso que no sea una aplicación web (es decir, una aplicación móvil), probablemente necesitará una API de todos modos. Express puede hacer esto, Angular no.

Finalmente, el acceso a la base de datos, normalmente la aplicación Angular deberá conectarse a algún tipo de backend para realizar operaciones CRUD. O irás con la base de datos alojada como Firebase, o terminarás usando tu propia base de datos. El último escenario es más popular y necesitará Express (o similar) para eso.

Express y AngularJS no se excluyen mutuamente, tienen un propósito diferente (de hecho, es perfectamente correcto usar ambos) Express para toda la lógica del lado del servidor y Angular para la lógica del lado del cliente.

Express se puede utilizar para alojar las API para el consumo / servicio de AngularJS. Puede considerar AngularJS como MVC y la API en Express como SOA .

Hay muchas cosas que uno quiere controlar desde el servidor. Y ese es el lugar donde los marcos del lado del servidor entran en escena.

Una aplicación web no es solo algunas páginas html enlazadas entre sí. Hay muchas otras cosas que necesitan ser implementadas

  • Modelo de validación.
  • Manteniendo el modelo consistente. Recuerde que varios usuarios pueden acceder al mismo modelo en cualquier momento y hasta cambiarlo.
  • Controlando el acceso a los recursos.
  • Desencadenando flujos de trabajo.
  • Lógica de negocios.

y otras cosas así requieren un marco de servidor. Como se mencionó anteriormente, los marcos del lado del cliente como AngularJS complementan los marcos del lado del servidor.