• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
    • Preguntas
    • Profesores
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Pruebas Online
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

104
Vistas
NodeJS sin marcos: findById

Soy principiante y trato de hacer una función findByID con el archivo NodeJS y JSON como una base de datos sin marcos, código:

 const http = require("http"); const url = require("url"); const fs = require("fs"); const querystring = require("querystring"); const data = fs.readFileSync("./data/data.json"); let todos = JSON.parse(data); const server = http.createServer((req, res) => { const urlparse = url.parse(req.url, true); if (urlparse.pathname == "/todos" && req.method == "GET") { const search = urlparse.search; if (search) { const [, query] = urlparse.search.split("?"); const data = querystring.parse(query); todos = todos.filter((todo) => todo.id === data.id); res.end(JSON.stringify(todos, null, 2)); } }})

Cuando consulté con el cartero por primera vez, todo estaba bien. 1ra solicitud

Cuando reviso la segunda vez en la ventana de respuesta, hay una matriz vacía. 2da solicitud

Cada solicitud utilizó una identificación diferente.

almost 3 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

No veo todos definidos, así que asumo que es global, esta línea la está mutando en cada solicitud:

 todos = todos.filter((todo) => todo.id === data.id);

Otra cosa es que si la identificación es única, puede usar todos.find para obtener la primera coincidencia.

Entonces, en su lugar, use una nueva variable y encuentre:

 const todoMatch = todos.find((todo) => todo.id === data.id);
almost 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda