Pular para o conteúdo

apps/front/astro-bun-app

173 · Front-end · ≈ 5 min de estudo

Astro SSR em Bun

Aplicação Astro com renderização no servidor (output: "server") executada pelo runtime Bun. Cada requisição monta o HTML do extrato no servidor: o navegador recebe o conteúdo pronto, sem depender de JavaScript no cliente. Use quando a página mostra dado que muda a cada acesso e não pode ser congelado no build — como um extrato bancário.

passos
6
arquivos
6
teste
1
tecnologias
5
Infraestrutura realTypeScriptBunAstroPlaywrightDocker
Baixar cartão

Cenário

Consulta de extrato de conta corrente num banco digital. O saldo disponível, os últimos lançamentos (PIX, TED, boleto) e o protocolo da consulta são calculados no servidor a cada requisição, em centavos inteiros. O extrato sai marcado como no-store, private: nenhum proxy ou cache compartilhado guarda o saldo de um cliente para servir a outro.

Planta

Sequência
3/3
GET /1statementBuild: saldo, lançamentos e protocolo da consulta2HTML completo, cache-control no-store3nada é buscado por script — a página já chega prontaNavegadorAstro SSR (Bun)
3

3 passos — reproduza para seguir o fluxo

Como funciona

6 passos

SSR Astro servido por Bun em contêiner.

Esconde cada passo: lembre antes de tocar para revelar.

  1. 01

    astro.config.mjs declara output: "server" com o adapter @astrojs/node em modo standalone

  2. 02

    O frontmatter de src/pages/index.astro roda no servidor a cada requisição e chama statementBuild

  3. 03

    statement_account.ts soma os lançamentos em centavos e gera um protocolo por consulta; a formatação em pt-BR acontece no servidor

  4. 04

    A página define cache-control: no-store, private e entrega HTML semântico (table com caption, time)

  5. 05

    bun ./dist/server/entry.mjs sobe o servidor gerado pelo build; o Dockerfile faz o mesmo em dois estágios, sem root

  6. 06

    Os testes Playwright provam a assinatura do SSR: dado no HTML, página completa sem JavaScript, protocolo novo a cada requisição e extrato não cacheável

apps/front/astro-bun-app

6 arquivos

src/pages/

  • index.astroRota única: extrato renderizado no servidor a cada requisição

src/

  • statement_account.tsSaldo, lançamentos e protocolo da consulta, em centavos
  • statement.test.tstesteTestes E2E que provam o SSR (Playwright)

./

  • astro.config.mjsoutput: "server" e adapter Node standalone
  • playwright.config.tsSobe o build e espera a URL responder antes dos testes
  • DockerfileBuild em dois estágios; runtime só com dependências de produção e usuário sem privilégio

Executar · com Docker

  1. bun install# dependências
  2. bun run build
  3. bun run start
  4. bun run test# integração contra o serviço real

Servidor em http://localhost:4321. O bun run test sobe o build sozinho; com um Chromium já instalado fora da versão do Playwright, aponte PLAYWRIGHT_CHROMIUM_PATH para ele.

Requisitos
BunDocker

Por que se relacionam

Teste rápido

Qual destes combina com Astro SSR em Bun?

Próximo projeto · Front-endNext.js App Router — Server Component, Client Component e Route Handler
Esc

↑ ↓ navegarEnter abrir191 resultados