Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lucasrmagalhaes/url_shortener-node
:scissors: Encurtador de URL - Node.js
https://github.com/lucasrmagalhaes/url_shortener-node
dio insomnia mongodb typescript
Last synced: 2 days ago
JSON representation
:scissors: Encurtador de URL - Node.js
- Host: GitHub
- URL: https://github.com/lucasrmagalhaes/url_shortener-node
- Owner: lucasrmagalhaes
- License: mit
- Created: 2021-01-05T23:23:25.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-02-11T16:56:10.000Z (almost 2 years ago)
- Last Synced: 2023-03-03T22:33:01.699Z (over 1 year ago)
- Topics: dio, insomnia, mongodb, typescript
- Language: TypeScript
- Homepage:
- Size: 15.6 MB
- Stars: 5
- Watchers: 1
- Forks: 2
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
Collections no MongoDB - Cloud.
Objetivos do Projeto
- Construir uma API com NodeJS e Typescript.
- Gerar Hashes únicos para cada entrada.
- Conectar as entradas com os hashes gerados.
Requisitos Básicos
Ter instalado NodeJS.
Editor de texto da sua escolha.
Parte 1: TypeScript
Linguagem Base
Typescript
TypeScript é um superconjunto de JavaScript desenvolvido pela Microsoft que adiciona tipagem e alguns outros recursos a linguagem.
Parte 2: MongoDB
Base de Dados
MongoDB
MongoDB é um banco de dados NoSQL orientado à documentos.
Iniciando o Projeto
MongoDB é um banco de dados NoSQL orientado à documentos.
Pode ser utilizado instalado localmente ou em Cloud.
No projeto vai ser utilizado em Cloud.Build a Cluster.
Free.
Cluster Name: urlShortener-DIO
npm initnpm i typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser eslintnpm i nodemon express cors
Criar a pasta: src
Onde vai ter o código fonte.Dentro da pasta: src
Criar o arquivo: index.ts
- Gera TypeScript em JS.
npm run build:watch- Restarta a API a cada mudança.
npm run dev
Testando no Insomnia
GEThttp://localhost:5000/test
{
"success": true
}
- shortid
npm install --save shortid- Matando o servidor
lsof -i tcp:3000kill -9 5805
POSThttp://localhost:5000/shorten
{
"originURL":
"https://cloud.mongodb.com/v2/5ff4fd9e15b4cc384aa5e559#clusters"
}- Preview
{
"originURL": "https://cloud.mongodb.com/v2/5ff4fd9e15b4cc384aa5e559#clusters",
"hash": "VaDg91-3w",
"shortURL": "http://localhost:5000/VaDg91-3w"
}
- Acessando via Browser: Dados inseridos direto no banco para teste.
http://localhost:5000/VaDg91-3w
- Mongoose
npm i mongoose @types/mongoose- Typegose
npm i @hasezoey/typegoose
POST
http://localhost:5000/shortenJSON
{
"originURL":
"https://cloud.mongodb.com/v2/5ff4fd9e15b4cc384aa5e559#clusters"
}Preview: 200 OK
{
"_id": "5ff670e09f8ffb2f64250618",
"hash": "Z41vvIrNd",
"shortURL": "http://localhost:5000/Z41vvIrNd",
"originURL": "https://cloud.mongodb.com/v2/5ff4fd9e15b4cc384aa5e559#clusters",
"__v": 0
}