¿Debo adoptar Node.js / Express / templating para crear sitios web?

Debe usar plantillas para evitar repetirse.

Servir HTML estático es extremadamente ineficiente porque terminarás teniendo que rehacer varias veces.

Por ejemplo, puede crear una plantilla parcial de encabezado y pie de página e incluirlos como tales:

Luego, si realiza un cambio en el encabezado, solo tendrá que actualizar la plantilla parcial en lugar de revisar cada archivo individualmente.

¡Es un gran ahorro de tiempo!

* Nota: las rutas son relativas al archivo que llama a la inclusión.

Además, realmente te estás perdiendo el poder de las plantillas EJS si solo las estás usando para servir contenido estático.

Por ejemplo, en uno de los proyectos en los que mi equipo y yo estamos trabajando, hemos utilizado declaraciones condicionales para presentar al usuario un menú de navegación completamente diferente dependiendo de si el usuario se ha registrado o no.

Esto es realmente importante para el proyecto, porque permitimos que el usuario vea las mismas páginas pero controlamos qué llamadas a la acción experimenta el usuario a través de declaraciones condicionales.

Puede usar algo como esto (usando el middleware de pasaporte como un servicio de autenticación):

// El contenido registrado en el usuario ve

// Contenido que ven otros usuarios

Esto hace que sus plantillas sean más dinámicas.

Y del mismo modo, su aplicación / sitio web más eficaz.

Si sirve HTML completamente estático, no hay razón para no seguir haciéndolo, ya sea Express `static ()` o incluso mejor, ponga Varnish y Nginx delante de todo y déjelos lidiar con activos estáticos.
Si te encuentras renderizando plantillas, pero sin incluir ninguna variable, esa es la misma respuesta. (Incluso si usa plantillas porque le gusta la sintaxis ejs, simplemente puede compilar estáticamente esas plantillas en su proceso de compilación / implementación y servirlas estáticamente.

Por otro lado, si te encuentras escribiendo y renderizando plantillas con algunas variables allí, entonces probablemente deberías usarlo. Las plantillas se crean para evitar repeticiones, y para que sea más fácil incorporar datos en vivo a documentos HTML estáticos.

Entonces, si debe continuar o no, depende de en qué escriba sus plantillas.

Creo que las respuestas aquí lo cubren. La única advertencia que diría es las intenciones de los clientes. Algunos clientes con los que trabajé quieren poder realizar pequeñas actualizaciones y cambios en el futuro por su cuenta. En estos casos, dependiendo de las habilidades que tenga el cliente, podría optar por una página estática y tradicional porque es familiar para un gran número de personas no técnicas. Si se requieren muchas actualizaciones y cambios, obviamente, un CMS sería una opción aún mejor. Pero cada cliente tiene su propio conjunto de necesidades y limitaciones, incluido el presupuesto, la infraestructura, etc.

Si bien las páginas estáticas nos parecen obsoletas e imposibles de mantener, no descarto ninguna opción hasta que entiendo claramente su problema y su punto de vista. La clave es poner su mente en sus zapatos y elegir la solución que mejor resuelva su problema mientras les informa los pros y los contras para que puedan tomar la mejor decisión por sí mismos.

En resumen, la tecnología no debería impulsar la solución. El problema debería conducir a la solución tecnológica adecuada.

No hay razón para volver a sus viejas costumbres. HTML no le da la capacidad de codificar en archivos separados y unirse de manera extensible. No puede darle iteradores, plantillas y herencia. Además, en algunos casos, si se usa de forma inteligente, la representación ejs puede ser más rápida. Otras plantillas como el jade pueden ser de menor tamaño y el bigote se puede usar de muchas otras maneras. Entonces solo si

  • no aprovecha ni conoce las características anteriores (WTF)
  • no desea agregar un paso adicional para precompilar en su flujo de trabajo (WTF)

puedes volver a las formas antiguas. Pero aprender estas características es muy fácil y, en mi humilde opinión, toma una hora como máximo para usarlo de manera creativa por primera vez. La comprensión y el control del código aumenta diez veces y esta ventaja es incluso preferida sobre la escalabilidad en la mayoría de los casos de uso.

Creo que está bien, considerando el crecimiento de JS como una herramienta de desarrollo de pila completa. Encuentro que muchos desarrolladores cambian a MEAN.IO por sus necesidades de desarrollo.