Skip to content

wlopera/node-client-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

node-client-server

Cliente servidor en NodeJS

Crear cliente para consultar The Rick and Morty API

Crear archivo: client.js

const axios = require("axios");
const fs = require("fs").promises;
const path = require("path");

const main = async () => {
  const response = await axios.get("https://rickandmortyapi.com/api/character");

  const {
    data: { results },
  } = response;

  let characters = results
    .map((character) => {
      return {
        id: character.id,
        name: character.name,
        status: character.status,
        species: character.species,
      };
    })
    .map((person) => Object.values(person).join(","))
    .join("\n");

  characters = "ID,NOMBRE,ESTADO,ESPECIES\n".concat(characters);

  await fs.writeFile(path.join(__dirname, "data.csv"), characters);
  //   console.log(path.join(__dirname, "data.csv"));
  console.log(characters);
};

main();

Procesar el archivo creado con nodeJS $>node client.js

Captura1

Agregar Servidor basico de NodeJS > server.js

const express = require("express");
const data = require("./MOCK_DATA.json");
const port = 3000;
const app = express();

// GET: ruta, controlador
app.get("/", (req, res) => {
  res.json({
    message: "Lista de usuarios",
    body: data,
  });
});

app.listen(port, () => {
  console.log(`Servidor escuchando en http://localhost:${port}`);
});

Salida desde postman

Captura1

Crear CRUD - Consultar usuarios y crear un nuevo usuario

  • service.js
const data = require("./MOCK_DATA.json");

module.exports = {
  getUser: () => data,
  createUser: (dataUser) => {
    // Data solo en memoria

    const newUser = {
      id: data.length + 1,
      ...dataUser,
    };
    data.push(newUser);
    return newUser;
  },
};

  • Modificar server.js
...

+ const Service = require("./src/service");

...

+ // Permitir recibir datos en NodeJS
+ app.use(express.json());

+ // GET: ruta, controlador
+  app.get("/", (req, res) => {
+    res.json({
+    message: "Lista de usuarios",
+     body: Service.getUser(),
+   });
+ });

+ // POST: ruta, controlador
+ app.post("/", (req, res) => {
+   const { body: newUser } = req;
+   const user = Service.createUser(newUser);
+   res.status(201).json({
+     message: "usuario creado correctamente.",
+     body: user,
+   });
+ });

...

app.listen(port, () => {
  console.log(`Servidor escuchando en http://localhost:${port}`);
});
  • Consulta inicial CapturaA

  • Agregar Usuario Captura

  • Consulta para ver el cambio Captura1

Consultar usuario por id, modificar y borrar usuario

  • node-client-server\server.js
...
// GET por identificador: ruta, controlador
app.get("/:id", (req, res) => {
  const {
    params: { id },
  } = req;
  const user = Service.getUser(id);
  res.json({
    message: `Usuario ${id}`,
    body: user,
  });
});

// PUT - Modificar usuario: ruta, controlador
app.put("/:id", (req, res) => {
  const {
    params: { id },
  } = req;

  const { body: newUser } = req;
  const user = Service.updateUser(id, newUser);
  res.json({
    message: `Usuario Modificado ${user.id}`,
    body: user,
  });
});

// DELETE - Eliminar usuario: ruta, controlador
app.delete("/:id", (req, res) => {
  const {
    params: { id },
  } = req;

  const identifier = Service.deleteUser(id);
  res.json({
    message: `Usuario Borrado ${identifier}`,
  });
});
...
  • node-client-server\src\service.js
...
  getUser: (id) => {
    const identifier = Number(id); // parseint(id)
    // const user = data.filter((user) => user.id === identifier)[0];
    const user = data.find((user) => user.id === identifier);
    return user;
  },
  updateUser: (id, dataUser) => {
    const identifier = Number(id);
    const index = data.findIndex((user) => user.id === identifier);
    data[index] = {
      id: id,
      ...dataUser,
    };
    return data[index];
  },
  deleteUser: (id) => {
    const identifier = Number(id);
    data = data.filter((user) => user.id !== identifier);
    return id;
  },
...

Consultar usuario por id

CCaptura

Modificar usuario

mCaptura

Borrar usuario

DCaptura

About

Cliente servidor en NodeJS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors