Recap do material — SSR, EJS, fluxo MVC, estrutura de views.
Setup EJS, sintaxe de templates, partials, render no controller e HTML semântico.
Pausa para refeição — cabeça leve para o desenvolvimento da tarde.
Adicionar a camada de Views renderizadas no servidor para o recurso central do projeto.
Frameworks como Next.js fazem SSR e em seguida "hidratam" o HTML com JS, virando uma SPA. Para o nosso projeto, SSR puro com EJS é mais didático e rápido — sem build, sem complicação.
npm install ejs — pronto. EJS é uma dependência simples, sem step de build.
app.set('view engine', 'ejs')Diz ao Express: "qualquer res.render('home') vai procurar views/home.ejs".
app.set('views', ...)Define o diretório base dos templates. Fixar com path.join evita problemas em produção.
views/ com partialsPedaços de HTML reusados em várias páginas — header, footer, nav, sidebar. Importados com <%- include('partials/header') %>.
users/index.ejs, users/show.ejsif, forEach, map. Não imprime nada — só controla fluxo.res.renderPágina inteira com <div class="header"> e <div class="menu"> ignora a semântica. Use a tag certa.
querySelectorAll para múltiplos.click, submit, input, keydown...add, remove, toggle, contains — sem mexer no className string.required, min, maxlength, type="email"event.preventDefault() para travar submit inválidoexpress-validator nas rotas (visto na aula 6)Trate o cliente como adversário: ele pode mandar qualquer coisa. O servidor é o único lugar onde a validação tem valor de segurança.
src/views/views/produtos/index.ejs seguindo a convenção por recursoheader.ejs e footer.ejs via <%- include(...) %>res.render<header>, <main>, <section>, <article> — nada de "soup of divs"Abra o Figma/wireframe ao lado do editor. Comece pelo esqueleto semântico, depois acrescente as classes e o conteúdo. Estilo pixel-perfect fica para a Aula 10 (CSS).
public/css/fetch — só SSR puro (fetch chega na Aula 8)📍 Esta aula foca em Computational + Engineering — adicionamos a camada de Views renderizadas no servidor (destacadas em verde acima).
Disponibilizar páginas HTML renderizadas pelo servidor exibindo dados do recurso central do projeto.
| USAB Usabilidade | ✅ HTML semântico |
| ACES Acessibilidade | ✅ Tags + atributos certos |
| DES Desempenho | ✅ SSR rápido + cache |
| SEG Segurança | → Escape no template |
| MANT Manutenibilidade | → Partials reusáveis |