Cliente servidor en NodeJS
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();
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}`);
});
- Usar https://www.mockaroo.com/ para crear data Dummy Json
- 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}`);
});- 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;
},
...