entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Cargar HTML parcial con express Node.js

Hola,

Estoy intentando crear una Web con express y node.js, el problema es que al acceder directamente a la página necesito cargar la estructura completa del html, incluyendo la navegación. Además de eso, necesito que al pulsar sobre algunos enlaces cargue solo el contenido parcial de esa página.

Lo que he hecho es detectar si es una petición xhr, si lo es carga un fichero distinto:

app.get('/', function(request, response)
{
    if(!request.xhr)
    {
        //Enviar fichero con todo el html, incluida navegación, etc
        response.sendFile(request.app.get('APP_PATH') + '/views/index.html');
    }
    else
    {
        //Enviar fichero con solo el html de la sección en concreto..
        response.sendFile(request.app.get('APP_PATH') + '/views/partial/index.html');
    }
});

¿Existe alguna forma mejor de hacer esto, que tener 2 ficheros por cada página?

1 Respuesta

3votos

carlossevi Puntos63580

No sé si mi respuesta te va a servir porque no está orientada a Node.js pero te cuento cómo resolví un problema parecido con otro sistema de backend (en ese caso era PHP con un framework) para ver si lo puedes adaptar:

Tenía un sistema de plantillas en el que las vistas estaban compuestas por otras vistas. Simplificándolo, la vista index podría estar compuesta por:

  • Header
  • Sidebar
  • Contenido index
  • Footer

Como fichero, la plantilla de "index" sólo era una referencia a los 4 ficheros que la componen, que a su vez pueden ser vistas independientes.

Si necesitas entregar la página completa, lo haces sin problema a través de la vista "compuesta". Si necesitas recargar una de las 4 partes de la vista, puedes llamar a cada vista de forma independiente, y lo importante es que no hay código duplicado en ningún sitio, todo son referencias.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta