Meu link: https://rocketseat.com.br/eventos/nlw/convite/darlley-18410 Notion do projeto: https://efficient-sloth-d85.notion.site/Node-js-19d395da577080d1857df227077f1b96
✅ Node.js ✅ Fastify ✅ Biome ✅ TypeScript ✅ Drizzle ORM ✅ Docker ✅ PostgreSQL ✅ Redis ✅ Zod ✅ Swagger
Vamos criar o projeto com Node.js e realizar as primeiras configurações das bibliotecas que vamos utilizar, como o Fastify como micro-framework principal, Swagger para documentação interativa da API, Biome para formatação do código e além disso vamos preparar a aplicação para ser acessada por outros endereços Web, por meio da configuração de CORS.
Configurações de tsconfig: https://github.com/tsconfig/bases
Sempre que alterar o schema ou criar uma tabela nova:
npx drizzle-kit generate(gera um arquivo .sql para gerar o banco de dados)npx drizzle-kit migrate(cria a tabela no banco de dados)
ou
npm run migrate
STATUS_CODE/301: redirect permanente (o browser cria um cache para a próxima vez que eu acessar o mesmo link)
STATUS_CODE/302: redirect temporário (o browser acessa o backend novamente o que nos permite fazer a contagem de cliques)
No Radis existem algumas estruturas de dados.
CHAVE/VALOR:insert into tabela values('chave', 'valor')- Lists []
- sorted sets: comandos que começam com
'z', é como se fosse arrays ordenados por uma coluna ( [ likes: number ] ) - hashes {} vamos usar esse:
await redis.hincrby('referral:access-count', subscriberId, 1)incrementa o subscriberId 1 por vez
Faça deploy do Redis e PostgreSQL:
