2012-06-22 14 views
7

Estoy desarrollando una aplicación web muy dinámica a través de ember.js. El lado del cliente se comunica con una API JSON del lado del servidor. Un usuario puede hacer varias elecciones y ver los datos filtrados & en cuadritos desde todos los tipos de perspectivas, donde todos estos datos provienen de dicha API.Ember.js en el servidor

La cosa es que también necesito generar páginas estáticas (que Google pueda entender) a partir de los mismos datos. Estas páginas estáticas representan vistas predefinidas y no permiten mucha interacción; están destinados a servir como páginas de aterrizaje para los usuarios que llegan de los motores de búsqueda.

Naturalmente, me gustaría volver a utilizar todo lo que pueda de mi aplicación web dinámica para generar estas páginas estáticas, por lo que la dirección natural que pensé es implementar un módulo del lado del servidor para representar estas páginas que reutilizar tanto como sea posible de mi código Ember.js &.

Sin embargo, no encuentro ningún material sobre eso. Los documentos de Ember dicen "Aunque es posible usar Ember.js en el lado del servidor, eso está más allá del alcance de esta guía".

¿Alguien puede señalar qué sería posible volver a utilizar en el extremo del servidor, y las mejores prácticas para diseñar la aplicación de manera de permitir la máxima reutilización?

Por supuesto, si usted piensa que mi pensamiento aquí no tiene sentido, estaría contento de escuchar esto (y por qué) también :-)

Gracias! C.

+1

Habilitación '' Ember.js' en Node.js' está debatiendo actualmente y se está trabajando en https://github.com/emberjs/ember .js/pull/769 y https://github.com/emberjs/ember.js/pull/771. – pangratz

+0

@pangratz ¡Gracias! Ahora echaré un vistazo. – Chasseur

Respuesta

5

Handlebars - Motor de plantillas de Ember: se ejecuta en el servidor (al menos en Node.js). Lo he usado en mis propios proyectos.

Al servir una solicitud de HTTP para una página, posiblemente podría utilizar sus plantillas existentes: extraer los datos relevantes de la base de datos, masajearlos en un objeto JSON, alimentarlos a manubrios junto con la plantilla correcta, luego enviar el resultado para el cliente.

+0

Gracias. Pensé que era lo menos que podía hacer; todavía me pregunto si hay más :) – Chasseur

+0

Funny I cam sobre esto. Tenía que hacer exactamente esto. Tengo curiosidad si pudieras actualizarnos en el camino que tomaste. –

+0

Desafortunadamente no se trata solo del manubrio. Si desea que su aplicación se pueda rastrear completamente, también necesita otras cosas manejadas desde el servidor: acciones, eventos, etc. – korCZis