angularjs - compile - MEAN pila: enrutamiento angular vs enrutamiento expreso
ng-href angularjs (2)
Comencé a usar angular en mis proyectos de Express Express y me encanta. Recientemente implementé el enrutamiento angular en uno de mis proyectos de prueba y me pregunto cuáles son las ventajas y desventajas de usar el enrutamiento angular sobre el enrutamiento expreso / de nodo puro (por ejemplo, ¿existen problemas técnicos de esta manera, o quizás SEO, o es totalmente innecesario).
Para mi información, en mi configuración: tengo la representación expresa de la plantilla de índice principal, así como el enrutamiento de todas las solicitudes (un catch all) a la plantilla de índice principal y luego estoy usando angular para enrutar a plantillas parciales desde la plantilla de índice principal
Con la pila media (mongo, express, angular) tendrá enrutamiento en ambos extremos.
Express servirá su index.html estático y css / js / images y su api, y angular interactuará con la api para obtener datos de Mongo.
El enrutamiento con Express se realizará principalmente para la API, y el enrutamiento en angular se realizará para manejar la parte frontal de su aplicación. Express no devolverá ningún otro html que no sea el index.html y los parciales de plantilla que haya escrito para angular, sin embargo, incluso eso puede eliminarse compilando todas las plantillas directamente en sus archivos js usando una herramienta de compilación como gulp / grunt .
Ciertamente, es posible ir al 100% a un lado o al otro, sin embargo, no es práctico porque terminarás usando ineficientemente uno u otro lado. Por ejemplo, si hiciste todo el enrutamiento con expreso y usaste angular en cada página individual, estarías ignorando toda la funcionalidad de la aplicación de una sola página y el enrutamiento de angularjs, dejando que el propósito sea construir la página, lo que probablemente podría hacerse más efectivamente con Express y jade (o cualquier otro motor de plantillas). Realmente no es posible ir en la otra dirección y hacer todo su enrutamiento con angular porque angular requiere una api para obtener datos, a menos que incluya todos los datos al frente en línea en el html, lo cual estoy seguro de que estarás de acuerdo es una mala idea. (También elimina el mongo en ese punto ..)
Están resolviendo dos problemas diferentes. El enrutamiento angular (ui-router) es del lado del cliente: carga las vistas de ui correctas. El enrutamiento expreso es del lado del servidor: las API REST que está exponiendo.