Tecnologias | Projeto | Steps | Licença
Esse projeto foi desenvolvido com as seguintes tecnologias:
- NodeJS
- Typscript
- Zod
- Docker
- PostgreSQL
- Redis
- Fastify
- Prisma
- HTTP com HOPPSCOTCH.IO
Backend Websocket realtime, projeto criado em Nodejs durante o evendo NLW-NODEJS para backend utilizando banco de dados, containers e Orm para facilitar a integração de tabelas e suas dependencias, alem de muito javascript....
Para iniciar o projeto em node.js com o arquivo packega.json
npm init -y
Para utilização do typescript e integração com node.js, como desenvolvimento [-D]
npm install typescript @types/node -D
Para criação do arquivo de configuração do typescript
npx tsc --init
Link para configuração do tsconfig, mantido pela microsoft, conforme a versão do node
https://github.com/microsoft/TypeScript/wiki/Node-Target-Mapping
Para execução de typescript, precisamos da biblioteca abaixo que convert typescript em javascript, como desenvolvimento [-D]
npm install tsx -D
Configurar em package.json script de desenvovimento
"scripts": {
"dev": "tsx watch src/http/server.ts"
},
Framework Fastify
npm i fastify
Executar o servidor
npm run dev
Para Utilização do Docker, após instalado, criar o arquivo docker-compose.yml com a imagem do Postgres, e executar o comando abaixo:
docker compose up -d
Para listar os containers que estão em execução
docker ps
Para verificar o log via ID de um container
docker logs ID
Para utilização de ORM [ Object Relational Mappers ], vamos utilizar Prisma , como desenvolvimento [-D]
npm i -D prisma
Para iniciar o prisma
npx prisma init
Configurar arquivo .env com informações de user, pass e database conforme docker-compose
e na pasta prisma
configurar o arquivo de schema
Executar o comando abaixo para criação de migrations:
npx prisma migrate dev
Para abrir a interface integrada do PRISMA
npx prisma studio
Usando client Http: HOPPSCOTCH
Instalando biblioteca de valização [ZOD]
npm install zod
Trabalhando com cookie
npm i @fastify/cookie
Biblioteca para manipulação do REDIS
npm i ioredis
Biblioteca para trabalhar com Websockets
npm i @fastify/websocket
Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Feito com ♥ by Rafael d Silva