Vix Blog
No Result
View All Result
Social icon element need JNews Essential plugin to be activated.
  • Economia
  • Educação
  • Segurança
  • Mundo
  • Negócios
  • Notícias
  • Tecnologia
  • DMCA
NEWSLETTER
  • Economia
  • Educação
  • Segurança
  • Mundo
  • Negócios
  • Notícias
  • Tecnologia
  • DMCA
No Result
View All Result
Vix Blog
No Result
View All Result

Porquê produzir uma API CRUD usando Node, PostgresSQL e Express

Carolina by Carolina
2 de agosto de 2022
Reading Time: 9 mins read
0
Porquê produzir uma API CRUD usando Node, PostgresSQL e Express

Uma API CRUD gerencia dados por meio de quatro operações básicas de banco de dados: produzir, ler, atualizar e excluir. Você pode produzir uma API CRUD simples com unicamente o Express e um banco de dados PostgreSQL.

Comece criando um servidor Express ao qual você conectará o PostgreSQL. Em seguida, crie as funções CRUD e conecte-as aos endpoints da API. Feito isso, você poderá conectar o Node ao PostgreSQL e realizar consultas de banco de dados em cada rota.


Pré-requisitos para produzir a API

Para escoltar nascente tutorial, você deve:

  • Instale o Node em sua máquina.
  • Instale o servidor PostgreSQL em sua máquina.
  • Ter um conhecimento fundamental de Express.js.

Gerar um servidor expresso

Para produzir um servidor Express, comece criando um novo diretório e inserindo-o:

mkdir notes
cd notes

Em seguida, inicialize o npm:

npm init -y

Leste comando irá gerar um pacote.json registo na pasta de notas. Por termo, instale o Express.

npm install express

Crie um novo registo chamado índice.js e adicione o seguinte código.

const express = require("express");
const app = express();

app.use(express.urlencoded({
extended: true
}));

app.use(express.json())
app.listen(3000, () => console.log("Listening on port 3000"));

Isso criará um novo servidor escutando na porta 3000.

Gerar um banco de dados PostgreSQL

Execute o seguinte comando no prompt de comando do psql para produzir um banco de dados PostgreSQL chamado noteb.

postgres=

Execute nascente comando para listar todos os bancos de dados Postgres e verifique se você criou o banco de dados noteb:

postgres=

Conecte-se ao banco de dados

Primeiramente, conecte seu aplicativo Node ao servidor PostgreSQL. Você pode usar o módulo node-Postgres.

Execute o seguinte para instalá-lo via npm:

npm install pg

Porquê boa prática, conecte-se ao banco de dados em um registo separado.

Crie um novo registo chamado db.js e adicione o seguinte.

const { Client } = require("pg");
const { user, host, database, password, port } = require("./dbConfig");

const client = new Client({
user,
host,
database,
password,
port,
});

client.connect();
module.exports = client;

Cá, você está exportando a string de conexão que usará para se discursar com o banco de dados. Observe que você está lendo as configurações de conexão do banco de dados de um registo de maneira chamado dbConfig.js. Portanto, crie dbConfig.js e adicione os seguintes dados a ele.

module.exports = {
user: "{dbUser}",
host: "{dbHost}",
database: "notedb",
password: "{dbPassword}",
port: 5432,
};

Lembre-se de substituir os detalhes do banco de dados por seus próprios valores locais.

Gerar uma tábua PostgreSQL

No prompt de comando do psql, crie uma tábua chamada notes. Para debutar, conecte-se ao banco de dados noteb usando o comando c.

postgres=

Em seguida, crie uma tábua no banco de dados conectado usando o comando CREATE TABLE.

notedb=
ID SERIAL PRIMARY KEY,
note VARCHAR(255)
);

Esta tábua é bastante simples. Ele tem unicamente um ID que é uma chave primária gerada maquinalmente e um campo de texto chamado nota.

Gerar uma nota

Ao invés de realizar as operações CRUD nas rotas, crie funções que irão interagir com o banco de dados em um registo separado.

Crie um registo facilitar chamado helper.js e importe o objeto de conexão de db.js.

const client = require("./db");

Use o código a seguir para produzir a função createNote().

const createNote = (req, res) => {
try {
const { note } = req.body;

if (!note) {
throw Error("Send note in request body");
}

client.query(
"INSERT INTO notes (note) VALUES ($1)",
[note],
(err, data) => {
res.status(201).json({
error: null,
message: "Created new note",
});
}
);
} catch (error) {
res.status(500).json({
error: error.message,
message: "Failed to create new note",
});
}
};

Essa função primeiro verifica se o corpo da solicitação incluiu uma nota. Se a nota estiver ausente, ela gera um erro.

Para produzir uma nota, a função usa a cláusula INSERT. Ele retorna um objeto JSON contendo uma mensagem de erro nula e uma mensagem de sucesso se for bem-sucedida.

Obter todas as notas

Para obter todas as notas da tábua, use a cláusula SELECT *.

const getNotes = (req, res) => {
try {
client.query("SELECT * FROM notes", (err, data) => {
if (err) throw err;

res.status(200).json({
err: null,
notes: data.rows,
});
});
} catch (error) {
res.status(500).json({
err: error.message,
notes: null,
});
}
};

getNotes() envia o array notes no objeto de resposta se a consulta for bem-sucedida.

Obter Nota por ID

A API também terá um endpoint que retorna uma nota por ID. Em helper.js, adicione uma função getNoteById().

const getNoteById = (req, res) => {
try {
const { id } = req.params;
client.query("SELECT * FROM notes WHERE id=$1", [id], (err, data) => {
if (err) throw err;
res.status(200).json({
err: null,
note: data.rows[0],
});
});
} catch (error) {
res.status(500).json({
err: err.message,
note: null,
});
}
};

Esta função retornará um objeto JSON contendo a nota e um objeto de erro.

Atualizar nota por ID

Para atualizar uma nota, você precisa de uma nota e do ID dessa nota. Você receberá a nota do corpo da solicitação e o ID da URL.

A função updateNoteById() usa a cláusula UPDATE para atualizar uma nota existente com uma novidade nota.

const updateNoteById = (req, res) => {
try {
const { id } = req.params;
const { note } = req.body;
client.query(
"UPDATE notes SET note = $1 WHERE id = $2",
[note, id],
(err, data) => {
if (err) throw err;

res.status(201).json({
err: null,
message: "Updated note",
});
}
);
} catch (error) {
res.status(500).json({
err: error.message,
message: "Failed to update note",
});
}
};

Esta função retorna uma mensagem de sucesso se a tábua for atualizada e uma mensagem de erro se não for.

Excluir nota por ID

Para excluir uma nota por ID da tábua, use o código a seguir.

const deleteNote = (req, res) => {
try {
const { id } = req.params;
client.query("DELETE FROM notes WHERE id=$1", [id], (err, data) => {
if (err) throw err;

res.status(200).json({
error: null,
message: "Note deleted",
});
});
} catch (error) {
res.status(500).json({
error: error.message,
message: "Failed to delete note",
});
}
};

Agora que você criou todas as funções CRUD, exporte-as.

Em helper.js, adicione o seguinte.

module.exports = { createNote, getNotes, getNoteById, updateNoteById, deleteNote };

Você vai importá-los em índice.js ao produzir os endpoints da API.

Gerar rotas de API

A lanço final é produzir endpoints de API em índice.js para cada uma das operações CRUD.

Comece importando o registo helper.js.

const db = require("./helper")

Em seguida, crie cada endpoint.

app.get("/notes", db.getNotes);
app.get("/note/:id", db.getNoteById);
app.put("/note/:id", db.updateNoteById);
app.post("/note", db.createNote);
app.delete("/note/:id", db.deleteNote);

Uma API REST para atualizar seu banco de dados

Quando terminar, você pode verificar se sua API funciona usando um cliente REST porquê o Postman ou escrevendo testes de unidade. Você deve ser capaz de prometer que todos os cinco endpoints funcionem conforme o esperado.

RELATED POSTS

Uma vez que configurar e usar o controle dos pais no Disney+

O que é o registo hosts e porquê você o edita no Windows?

Uma vez que prolongar a vida útil da bateria do seu Steam Deck

Você também pode inspecionar e gerenciar os dados adicionados ao banco de dados usando a utensílio pgAdmin. É um aplicativo GUI que facilita a gestão do banco de dados e a interação com os servidores PostgreSQL.

Carolina

Carolina

Next Post
The 7 Best Gadgets for Men

The 7 Best Gadgets for Men

Preparando fotos para gravação a laser no Photoshop: um guia completo

Preparando fotos para gravação a laser no Photoshop: um guia completo

Deixe um comentário Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

No Result
View All Result

Categorias

  • Entretenimento
  • Mundo
  • Notícias
  • Segurança

Posts recentes

  • Você pode minguar o Safari no Windows?
  • 3 razões pelas quais seu smartwatch pode ser um risco de segurança
  • Uma vez que configurar e usar o controle dos pais no Disney+

Categorias

  • Entretenimento
  • Mundo
  • Notícias
  • Segurança

Links Importantes

  • Quem Somos
  • Blog
  • Fale Conosco
  • Política de Privacidade
  • DMCA
Social icon element need JNews Essential plugin to be activated.

© 2021 VixBlog - Notícias e dicas para o seu dia dia.

No Result
View All Result
  • Economia
  • Educação
  • Segurança
  • Mundo
  • Negócios
  • Notícias
  • Tecnologia
  • DMCA

© 2021 VixBlog - Notícias e dicas para o seu dia dia.