Manipulando dados de um Array com Nodejs, Usei o postman para testar as rotas.

Related tags

Database CRUD-Nodejs
Overview

CRUD-MysqlNodejs

Pre-requisitos que devem estar instalados:

  1. NodeJs
  2. Git

Ferramentas utilizadas

  1. Visual Studio Code
  2. Postman

Antes de iniciar o CRUD

Antes de partirmos para o código, farei uma breve introdução para que você entenda o que é Node JS, para que serve e como funciona.

O que é NODE JS?

Muitos acreditam que Node JS é uma linguagem de programação, acontece que, geralmente, é referida como linguagem. No entanto, Node JS é uma plataforma para back-end que aceita código JavaScript. Isto é, Node JS é uma maneira de usar JavaScript no back-end.

Fato curioso sobre Node JS: ele foi construído em cima da V8, que é o Engine, ou seja, o motor por trás do Google Chrome. Isso torna o Node JS muito rápido, além de permitir que você reutilize todo conhecimento de JavaScript (adquirido para front-end) também no back-end.

API REST

Os benefícios deste modelo de API REST é que podemos servir múltiplos clientes com o mesmo back-end, ou seja, um único código fornecido para Web Mobile ou até mesmo uma API pública.

É importante entender o fluxo de requisição e resposta, não vou entrar em detalhes, mas basicamente acontece nesta sequência:

  1. Requisição é feita por um cliente;
  2. Resposta retornada através de uma estrutura de dados (ex: JSON);
  3. Cliente recebe a resposta e processa o resultado.

Estas respostas utilizam métodos HTTP, que são:

GET  http://localhost:3000/users ➔ Buscar alguma informação no back-end
POST  http://localhost:3000/users ➔ Criar alguma informação no back-end
PUT  http://localhost:3000/users/1 ➔ Editar alguma informação no back-end
DELETE  http://localhost:3000/users/1 ➔ Deletar alguma informação no back-end
  1. Método HTTP
  2. Recurso/Rota
  3. Parâmetro

É importante também que você entenda sobre HTTP codes, que são os códigos HTTPs retornados de uma requisição, vejamos alguns exemplos mais comuns:

1xx: HTTP codes iniciados em 1 são informativos:
102: PROCESSING.

2xx: HTTP codes iniciados com 2 são de sucesso:
200: SUCCESS;
201: CREATED.

3xx: HTTP codes iniciados em 3 são de redirecionamento:
301: MOVED PERMANENTLY;
302: MOVED.

4xx: HTTP codes iniciados em 4 são de erros do cliente:
400: BAD REQUEST;
401: UNAUTHORIZED;
404: NOT FOUND.

5xx: HTTP codes iniciados em 5 são erros do servidor:
500: INTERNAL SERVER ERROR.

Vamos entender melhor sobre estes métodos, recursos/rotas e parâmetros na prática.

Benefícios de API REST

Os benefícios deste modelo de API REST é que podemos servir múltiplos clientes com o mesmo back-end, ou seja, um único código fornecido para Web Mobile ou até mesmo uma API pública.

Agora sim, até aqui você já sabe o mínimo necessário para começar a criar sua primeira API REST com CRUD em Node JS, então vamos para o código!

Crie uma pasta, e entre nela, abra seu terminal e execute: > code . Ou simplesmente abra essa pasta no VS code.

npm init : Este comando simplesmente cria um arquivo chamado package.json.

Agora com o arquivo package.json aberto no seu VScode, você terá algo parecido com isso:

{
"name": "nodegeek",
"version": "1.0.0",
"main": "index.js",
"license": "MIT"
}

Neste arquivo ficará armazenado a referência de todas as dependências que você instalar via NPM ou Yarn. npm init npm install express

Agora crie um arquivo e nomeie de index.js, este arquivo conterá todo nosso código (coloquei comentarios no arquivopara facilitar o entendimento).

Para executar a aplicacao e so digitar: node index.js Isso iniciará o servidor na porta 3000 do seu localhost. Perceba que o terminal ficará executando sem retornar nada, então abra seu navegador, pode ser o Google e acesse: http://localhost:3000 ou http://localhost:3000/teste . Note que navegador fica carregando, porém não retorna nada, então volte ao seu terminal e perceba que o terminal respondeu 'teste' conforme solicitado no console.log('teste'); que colocamos dentro da função.

Adicionar os parâmetros

Agora vamos adicionar dois parâmetros na nossa função, dessa forma:

server.get('/teste, (req, res) => {
console.log('teste');
})

req ➔ representa todos os dados da requisição.

res ➔ todas as informações necessárias para informar uma resposta para o front-end.

Então vamos testar, exclua o console.log(‘teste’); e adicione return res.json( { message: ‘Hello world’ } ); Agora ja podemos instalar o nodemon, execute o comando : npm install nodemon -D nodemon reiniciará sozinho o servidor toda vez que você salvar o código

Agora vamos criar o CRUD

  1. Crud sobre um Array "produtos"

  2. Devemos criar as rotas para o crud, que sao bem simples:

     GET - http://localhost:3000/produtos ➔ Mostrar produtos do array
     POST - http://localhost:3000/criar ➔ Criar/adicionar produto
     PUT - http://localhost:3000/actualizar/2 ➔ Editar produto
     DELETE - http://localhost:3000/produtos/1 ➔ Deletar produto
    
  3. Implementar as funcionalidades para manipular um array em Javascript

Manipulando dados do Array com Nodejs, Usei o postman para testar as rotas.

Middlewares

Os middlewares são basicamente uma função que recebe os parâmetros, req, res, entre outros, e executa uma função na aplicação, manipulando os dados da requisição de alguma forma.

Middlewares locais

Agora, com middlewares LOCAIS é um pouco diferente. Digamos que queremos criar dois middlewares, um para checar se um index já existe no array, e outro para checar se a propriedade name foi passada corretamente.

Exemplo de MIDDLEWARE criado:

function VerificarProdutoExiste(req, res, next) {
  if (!req.body.name) {
  return res.status(400).json({ error: 'Produto name is required' });
  // middleware local que irá checar se a propriedade name foi informada corretamente,
  // caso negativo, irá retornar um erro 400 – BAD REQUEST
  }
  return next(); // se o nome for informado corretamente, a função next() chama as próximas ações
}

Obrigada pela visita >_<

Sara Tuma
You might also like...

A remote nodejs Cached sqlite Database Server, for you to have your perfect MAP Cache Saved and useable remotely.

A remote nodejs Cached sqlite Database Server, for you to have your perfect MAP Cache Saved and useable remotely.

A remote nodejs Cached sqlite Database Server, for you to have your perfect MAP Cache Saved and useable remotely. Easy Server and Client Creations, fast, stores the Cache before stopping and restores it again! it uses ENMAP

Dec 18, 2022

This is a boilerplate for Nodejs (Nestjs/typescript) that can be used to make http server application.

Hexagonal architecture Table of Contents Overview Code architecture source code Service build information Regular user Advanced user Deployment Helm K

Sep 13, 2022

Ferramenta desenvolvida para migrar dados de um banco de dados Sqlite para Postgres.

Ferramenta desenvolvida para migrar dados de um banco de dados Sqlite para Postgres.

Sqlite to Postgres Migration Ferramenta desenvolvida para migrar dados de um banco de dados Sqlite para Postgres. Atualmente você pode: Pegar os dados

Dec 15, 2022

Back-end desenvolvido com NodeJS, TypeScript, Prisma e Express para prover dados para as aplicações em desenvolvimento.plicações do evento NLW eSports.

Back-end desenvolvido com NodeJS, TypeScript, Prisma e Express para prover dados para as aplicações em desenvolvimento.plicações do evento NLW eSports.

NLW eSports Back-End Aplicação back-end para surprir as necessidades de dados das demais plataformas desenvolvidas que são citadas mais abaixo. Este s

Sep 17, 2022

API desenvolvida em NodeJs sem o uso de framewors e, utilizando o google planilhas para armazenamento de dados

NodeJS + Google SpreadSheet Catálogo online de produtos 🏷️ O Projeto Desenvolver uma API de busca de informações como preço médio, marca e categoria,

Jul 14, 2022

Painel para pesquisa e exibição de dados de usuários do Github. Foram utilizados a biblioteca React e a API da plataforma.

Painel para pesquisa e exibição de dados de usuários do Github. Foram utilizados a biblioteca React e a API da plataforma.

React - GitHub User Search Sobre Esse projeto foi criado com a biblioteca React JS e com os dados provenientes da GitHub API. Trata-se de uma página p

Apr 24, 2022

🎯 Plataforma para acesso aos dados de perfis de usuários do Github.

🎯 Github Profile 🚀 Desafio Front End | Compass.UOL Tecnologias | Projeto | Como rodar | Licença demo.mp4 🚀 Tecnologias 💻 Projeto Esse projeto é um

Mar 30, 2022

Projeto individual, um site para cobertura de partidas de vôlei, times onde você pode saber onde, quando acontecerá as partidas, e dados sobre os times.

Projeto individual, um site para cobertura de partidas de vôlei, times onde você pode saber onde, quando acontecerá as partidas, e dados sobre os times.

🏐 Volleyball Esports Coverage Um portal de vôlei para as pessoas se conectarem ou divulgarem suas partidas, conhecimentos e uma maneira de conhecerem

Jun 6, 2022

Projeto de código aberto para ajudar as pessoas a ingressarem em carreiras de dados

Bem vinde O que é o Data Career Guide? É um projeto gratuito de guia (não é um curso e nem um livro) para carreiras na área de dados, inspirado no Lea

Dec 30, 2022

Projeto realizado como meio de aprendizado do Front-End e do Bootstrap. Tentei testar algumas animações e expor o máximo de criatividade possível😜

Projeto realizado como meio de aprendizado do Front-End e do Bootstrap. Tentei testar algumas animações e expor o máximo de criatividade possível😜

Steck Cars Demonstração : Sobre Projeto realizado como meio de aprendizado do Front-End e do Bootstrap. Tentei testar algumas animações e expor o máxi

Jan 10, 2022

Aprendendo a testar Aplicações Javascript

Aprendendo a testar Aplicações Javascript Testes no ecossistema Javascript. Simples libs utilitárias, passando por uma API REST e finalmente chegando

Mar 1, 2022

API em NodeJS, utilizando banco de dados MongoDB (TypeORM), com cobertura de testes (coverages), utilizando o Jest

API em NodeJS, utilizando banco de dados MongoDB (TypeORM), com cobertura de testes (coverages), utilizando o Jest

Api Backend Tindin Sobre API em NodeJS, utilizando banco de dados MongoDB (TypeORM), com cobertura de testes (coverages), utilizando o Jest. 👉 app ur

Jan 20, 2022

A visualizer that parses CSV data and renders it in a table in Postman or in a browser.

A visualizer that parses CSV data and renders it in a table in Postman or in a browser.

Postman CSV Visualizer A visualizer that parses CSV data and renders it in a table in Postman or in a browser. Example Using the Visualizer in Postman

Dec 10, 2022

A Leaderscore app that send data to an API created from Postman and allow users to save names and scores in a table. Built with JavaScript

A Leaderscore app that send data to an API created from Postman and allow users to save names and scores in a table. Built with JavaScript

Leaderboard The leaderboard website displays scores submitted by different players. It also allows you to submit your score. All data is preserved tha

May 16, 2022

Quikly scaffold a postman collection for a GraphQL API. Compatible with Insomnia.

Quikly scaffold a postman collection for a GraphQL API. Compatible with Insomnia.

GraphMan Quickly scaffold a postman collection for a GraphQL API. GraphMan CLI generates an complete collection from a GraphQL endpoint, containing on

Dec 28, 2022

Convert your Postman documentation in a github´s readme.md ready format

Convert your Postman documentation in a github´s readme.md ready format

Postman 2 Markdown Converter For that only time you need to convert your Postman documentation in a github´s readme ready format! Features & Problems

Sep 18, 2022

Repositório criado para prática do dia 14/05 utilizando nodeJs, express, nodemon e MVC. Como base utilizamos o modelo ER criado para uma locadora de filmes fictícia.

gamabuster Repositório criado para prática do dia 14/05 utilizando nodeJs, express, nodemon e MVC. Como base utilizamos o modelo ER criado para uma lo

May 18, 2022

Uma simples pokédex que consome os dados da PokeAPI.

Uma simples pokédex que consome os dados da PokeAPI.

POKEDEX - Caio Almeida Uma pokedex consumindo os dados provindos da API pública: PokeAPI. Protótipo FIGMA Pokedex FIGMA Pré-requisitos Ter o NodeJS in

Dec 29, 2021

Extensión para crear el icono y cover de un curso en Platzi para organizar la toma de apuntes en Notion

Extensión para crear el icono y cover de un curso en Platzi para organizar la toma de apuntes en Notion

💚 Platzi Cover Extensión para extraer el icono y cover de un curso en Platzi para organizar la toma de apuntes en Notion 📦 Instalación Descargar el

Nov 15, 2021
Owner
Sara Tuma
👩‍💻🌐💓 Web development | Nodejs 😭🤩
Sara Tuma
ORM for TypeScript and JavaScript (ES7, ES6, ES5). Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.

TypeORM is an ORM that can run in NodeJS, Browser, Cordova, PhoneGap, Ionic, React Native, NativeScript, Expo, and Electron platforms and can be used

null 30.1k Jan 3, 2023
NodeJS PostgreSQL database performance insights. Locks, index usage, buffer cache hit ratios, vacuum stats and more.

Node Postgres Extras NodeJS port of Heroku PG Extras with several additions and improvements. The goal of this project is to provide powerful insights

Paweł Urbanek 68 Nov 14, 2022
E-Commerce Application developed with nodejs and stored to mongodb.

E-Commerce Application This Application has been developed with nodejs and mongodb. Environment Variables Create a file named config.env in config dir

Abdullah Öztürk 13 Dec 23, 2021
This is a demo sample of linking NODEJS via ORM and MYSQL

Demons(Demo of Nodejs with SQL) This is a demo sample of linking NODEJS with ORM and MYSQL Connecting Node to SQL is a hard task and not much help is

Shivam Sourav Jha 3 Apr 14, 2022
A simple url shorter API built with nodejs running on Kubernetes in Google Cloud, using PostgreSQL for storage and cloud sql proxy.

Simple URL Shorter - Google Cloud - Kubernetes A simple url shorter API built with nodejs running on Kubernetes in Google Cloud, using PostgreSQL for

null 3 Nov 25, 2021
Bulk follow GitHub users using a NodeJS script.

Github bulk follow Getting Started Prerequisites Clone the project to your local environment: git clone [email protected]:farid-ouachrar/github-bulk-

Farid Ouachrar 3 Sep 27, 2021
Auth model created by Using nodeJs for backend & reactJs for frontend with the help of TailwindCss in styling

The Universal Auth System Using The MERN Stack Including Mysql --> The project is divded to two separte projects 1- The Client side -> containing the

m.bebars 1 Aug 22, 2022
Nodeparse - A lightweight, vanilla replacement for Express framework when parsing the HTTP body's data or parsing the URL parameters and queries with NodeJS.

nodeparse A lightweight, vanilla replacement for Express framework when parsing the HTTP body's data or parsing the URL parameters and queries with No

Trần Quang Kha 1 Jan 8, 2022
NodeJS,express and mysql starter project

Node-express-mysql-starterproject NodeJS,express and mysql starter project Start with cloning the repo & Run npm i to download all the dependecies Aft

Nermine slimane 16 Dec 11, 2022
API Back-End de NodeJS com NestJS

A progressive Node.js framework for building efficient and scalable server-side applications. Description Nest framework TypeScript starter repository

Glaucio Daniel 5 May 29, 2022