Así que me sumergí en Node/Express primero (con aprender cosas intermedias de Javascript) y estoy un poco confundido sobre por qué se requiere un "motor de vista" como Jade o EJS.
Parece que no puedo encontrar algo que use solo HTML5 normal. ¿O es que no puedo pasar valores a HTML normal con express?
Supongamos que tengo una página index.html que se carga y cuando "Inicio de sesión" se carga con el nombre de usuario publicado en la parte superior (solo por ejemplo). ¿No puedo pasar valores a un archivo .html normal dentro de express?
¿Es necesario un View Engine para Express/Node?
No, no es obligatorio. Express puede servir felizmente archivos HTML5 estáticos como desee. No necesitas un motor de vista para eso. Puede crear rutas personalizadas y usar res.sendFile() para cada página o puede usar express.static() para servir automáticamente un directorio completo de archivos HTML estáticos o puede escribir su propio código para construir cualquier contenido HTML5 que desee. enviar y usar res.send() para enviarlo.
Donde se requiere un motor de vista es si desea un tipo de plantilla de sistema donde puede crear una plantilla HTML con marcadores de posición para contenido dinámico y luego insertar valores dinámicos en la página en el servidor.
¿No puedo pasar valores a un archivo .html normal dentro de Express?
No, no puedes hacer eso con regular express. Express tiene funciones para servir archivos HTML estáticos, pero no para insertar contenido dinámico en un archivo HTML. Para eso se usa un motor de visualización. Express no creó esa capacidad en sí misma porque hay docenas de filosofías de motor de vista diferentes y Express no quería exigir un estilo, por lo que admite una interfaz de motor de vista para renderizar desde una plantilla y puede seleccionar qué motor de vista desea usar.
Para responder a la pregunta principal, no es necesario un motor de visualización para express/node.
Sin embargo, tiene razón, no puede pasar variables/valores a html puro. El motor de vista es algo que analiza los datos que pasa y genera el marcado html para usted.
Otro enfoque para usar un motor de vista es usar una biblioteca/marco frontal como jquery, react o angular (o puede usar javascript simple). El javascript puede recuperar datos (con ajax/fetch) y vincularlos a su html; bueno, supongo que no estaría vinculado si está usando javascript simple o jquery, pero puede actualizar el DOM con sus datos.